Jump to content
  • 0

Проблема извлечения информации из базы


Torawhite
 Share

Question

Здравствуйте! Имеется данный код:

<?php	$db = mysql_connect("ххх","ххх","ххх");	mysql_select_db("gb_tw_mag", &db);		if (isset($_GET['cat'])) {$cat = $_GET['cat'];}	$result = mysql_query("SELECT link,title,mini_img,description,article_date,author,author_link FROM male_articles WHERE cat='1'",&db);	if (!$result)	{		echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.<br>Код ошибки:</p>";		exit(mysql_error());	}	if (mysql_num_rows($result)>0) 	{		$myrow = mysql_fetch_array($result);	}	else 	{		echo "<p>В данной рубрике на данный момент нет публикаций.</p>";		exit();	}?>

Но при попытке загрузить страницу, мне выдаёт следующую ошибку:
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 6

 

6-я строка в данном случае - строка, где переменной $result присваиваем запрос. Не могу понять, где ему не нравится скобка :(

 

Link to comment
Share on other sites

Recommended Posts

  • 0

 

&db

Что это? 

 

 

уберите амперсанд перед db

Переменная, в которую попадает идентификатор соединения. Увидел. спасибо. шрифт мелкий в текстовом редакторе, $ похож на &. Только начинаю работать с php поэтому такие глупые ошибки

Link to comment
Share on other sites

  • 0

да, синтаксис другой, там ооп подход используется, но учить там совсем немного, портачить особо нечем.

просто драйвер mysql морально устарел уже, и на некоторых хостингах может не использоваться.

Link to comment
Share on other sites

  • 0

Вместо mysql используйте лучше pdo

Странное дело: если этот код вставлять, как блок, то ничего не работает. Если оставить просто в тексте, то работает, но весь текст, который из базы извлекается в виде "???????", хотя кодировка у базы и таблиц в ней utf8_general_ci, у страницы кодировка прописана <meta charset="utf-8">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Ума не приложу, почему так

Link to comment
Share on other sites

  • 0

это уже похоже из области ясновидения.

я не могу сказать в чем у вас там проблема.

<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><?php	$db = mysql_connect("mysql87.1gb.ru","xxx","xxx");	mysql_select_db("xxx", $db);				if (isset($_GET['cat'])) {$cat = $_GET['cat'];}	$result = mysql_query("SELECT link,title,article_img,description,article_date,author,author_link FROM male_article WHERE cat='1'",$db);	if (!$result)	{		echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p>";		exit(mysql_error());	}	if (mysql_num_rows($result)>0) 	{		$myrow = mysql_fetch_array($result);	}	else 	{		echo "<p>В данной рубрике на данный момент нет публикаций.</p>";		exit();	}?><meta name="description" content=""><meta name="keywords" content=""><title>Стиль | Журнал | Torawhite.ru | Store & Magazine</title>	<?php		include ("http://www.torawhite.ru/blocks/favicon.php");	?><!--Таблицы стилей--><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/input_reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/main.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/fonts.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/header.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_left_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/article_block_box.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/article/article_block.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_right_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/top_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/bottom_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/footer.css">	<?php		include ("http://www.torawhite.ru/magazine//magazine_blocks/magazine_scripts_head.php");	?></head><body>	<div class="wrapper">		<?php			include ("http://www.torawhite.ru/blocks/header.php");			include ("http://www.torawhite.ru/blocks/top_nav.php");		?>		<div class="container">			<?php				include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_left_sidebar.php");			?>			<div class='article_block_box'>				<?php					do {						printf("							<div class='article_block'>	 							<div class='article_block_image'><a href='%s' target='_self' title='%s'></a></div>	 							<div class='article_block_name'>	 								<p><span class='article_block_name_top'><a href='%s' target='_self'>%s</a></span></p>	 								<p ><span class='article_block_name_date'>%s | </span><span class='article_block_author'><a href='%s' target='_self'>%s</a></span></p>	 							</div>	 							<div class='article_block_text'>	 								%s	 							</div>	 							<div class='article_block_full_story'>	 								<a href='%s' target='_self'>Читать полностью</a>	 							</div>							</div>", $myrow["article_img"],$myrow["title"],$myrow["link"],$myrow["title"],$myrow["article_date"],$myrow["author_link"],$myrow["author"],$myrow["description"],$myrow["link"]);						}					while ($myrow = mysql_fetch_array($result)); 				?>			</div>			<?php					include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_right_sidebar.php");			?>		<div class="clear"></div>			</div>		<?php			include ("http://www.torawhite.ru/blocks/bottom_nav.php");			include ("http://www.torawhite.ru/blocks/footer.php");		?>	</div><?php	include ("http://www.torawhite.ru/blocks/scripts_body.php");?></body></html>

Это весь код страницы. Вставка PHP после <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">, там соединение с базой. Если я код убираю в отдельный php-файл (в нём я также открываю и закрываю php)А вместо него прописываю функцию include и в ней прописываю путь к блоку. С вставкой блока выдаёт ошибку в строке

while ($myrow = mysql_fetch_array($result));

Без блока работает, но с кодировкой проблемы

это уже похоже из области ясновидения.

я не могу сказать в чем у вас там проблема.

Адрес самой страницы http://torawhite.ru/magazine/male_articles/style/

Link to comment
Share on other sites

  • 0

это уже похоже из области ясновидения.

я не могу сказать в чем у вас там проблема.

Переписал через PDO:

<?php	try {			$pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "xxx", "xxx");			$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);		}		catch (PDOException $e) {			echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();			exit;		}				$data = $pdo->query("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1'");		$row = $data->fetch();?>

Работает, даже исправилась кодировка. НО! Опять, если занести в отдельный блок и вставлять через include - выдаёт ошибку в той же строке. Только теперь строка выглядит так:

while ($row = $data->fetch());

Link to comment
Share on other sites

  • 0

а что за ошибка?

Весь день с этим мучаюсь :unsure:

В зависимости от положения кода, выдаёт разные ошибки. На данный момент всё выглядит так:

<?php	include ("http://www.torawhite.ru/blocks/gb_tw_mag.php");?><!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="description" content=""><meta name="keywords" content=""><title>Стиль | Журнал | Torawhite.ru | Store & Magazine</title>	<?php		include ("http://www.torawhite.ru/blocks/favicon.php");	?><!--Таблицы стилей--><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/input_reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/main.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/fonts.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/header.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_left_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/article_block_box.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/article/article_block.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_right_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/top_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/bottom_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/footer.css">	<?php		include ("http://www.torawhite.ru/magazine//magazine_blocks/magazine_scripts_head.php");	?></head><body>	<div class="wrapper">		<?php			include ("http://www.torawhite.ru/blocks/header.php");			include ("http://www.torawhite.ru/blocks/top_nav.php");		?>		<div class="container">			<?php				include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_left_sidebar.php");			?>			<div class='article_block_box'>				<?php					$data = $pdo->prepare("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1'");					$data->execute(array('cat'=>1));					$row = $data->fetch();					do {						printf("							<div class='article_block'>	 							<div class='article_block_image'><a href='%s' target='_self' title='%s'></a></div>	 							<div class='article_block_name'>	 								<p><span class='article_block_name_top'><a href='%s' target='_self'>%s</a></span></p>	 								<p ><span class='article_block_name_date'>%s | </span><span class='article_block_author'><a href='%s' target='_self'>%s</a></span></p>	 							</div>	 							<div class='article_block_text'>	 								%s	 							</div>	 							<div class='article_block_full_story'>	 								<a href='%s' target='_self'>Читать полностью</a>	 							</div>							</div>", $row["article_img"],$row["title"],$row["link"],$row["title"],$row["article_date"],$row["author_link"],$row["author"],$row["description"],$row["link"]);						}					while ($row = $data->fetch()); 				?>			</div>			<?php					include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_right_sidebar.php");			?>		<div class="clear"></div>			</div>		<?php			include ("http://www.torawhite.ru/blocks/bottom_nav.php");			include ("http://www.torawhite.ru/blocks/footer.php");		?>	</div><?php	include ("http://www.torawhite.ru/blocks/scripts_body.php");?></body></html>

Сам файл gb_tw_mag.php:

<?php	try {			$pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "ххх", "ххх");			$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);		}			catch (PDOException $e) {			echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();			exit;		}		?>

Выдаёт следующую ошибку:

Fatal error: Call to a member function prepare() on a non-object in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 44

 

44-я строка:

$data = $pdo->prepare("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1'");

 

Код переписывал, так как пишут, что лучше через prepare

Link to comment
Share on other sites

  • 0
  • 0

Дело-то в том, что если тот-же код вставить на место include, то всё работает. С mysql-запросами было то же самое. Если бы я ошибся в подключении, то ничего бы не работало и напрямую, ведь так?

Вот http://torawhite.ru/magazine/male_articles/style/ всё выводит без ошибок, когда прописал без include:

<?php	try {			$pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "xxx", "xxx");			$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);		}			catch (PDOException $e) {			echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();			exit;		}?><!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="description" content=""><meta name="keywords" content=""><title>Стиль | Журнал | Torawhite.ru | Store & Magazine</title>	<?php		include ("http://www.torawhite.ru/blocks/favicon.php");	?><!--Таблицы стилей--><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/input_reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/main.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/fonts.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/header.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_left_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/article_block_box.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/article/article_block.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_right_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/top_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/bottom_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/footer.css">	<?php		include ("http://www.torawhite.ru/magazine//magazine_blocks/magazine_scripts_head.php");	?></head><body>	<div class="wrapper">		<?php			include ("http://www.torawhite.ru/blocks/header.php");			include ("http://www.torawhite.ru/blocks/top_nav.php");		?>		<div class="container">			<?php				include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_left_sidebar.php");			?>			<div class='article_block_box'>				<?php					$data = $pdo->prepare("SELECT link, title, article_img, description, article_date, author, author_link FROM male_article WHERE cat='1' ORDER BY id DESC");					$data->execute(array('cat'=>1));					$row = $data->fetch();					do {						printf("							<div class='article_block'>	 							<div class='article_block_image'><a href='%s' target='_self' title='%s'></a></div>	 							<div class='article_block_name'>	 								<p><span class='article_block_name_top'><a href='%s' target='_self'>%s</a></span></p>	 								<p ><span class='article_block_name_date'>%s | </span><span class='article_block_author'><a href='%s' target='_self'>%s</a></span></p>	 							</div>	 							<div class='article_block_text'>	 								%s	 							</div>	 							<div class='article_block_full_story'>	 								<a href='%s' target='_self'>Читать полностью</a>	 							</div>							</div>", $row["article_img"],$row["title"],$row["link"],$row["title"],$row["article_date"],$row["author_link"],$row["author"],$row["description"],$row["link"]);						}					while ($row = $data->fetch()); 				?>			</div>			<?php					include ("http://www.torawhite.ru/magazine/magazine_blocks/magazine_right_sidebar.php");			?>		<div class="clear"></div>			</div>		<?php			include ("http://www.torawhite.ru/blocks/bottom_nav.php");			include ("http://www.torawhite.ru/blocks/footer.php");		?>	</div><?php	include ("http://www.torawhite.ru/blocks/scripts_body.php");?></body></html>
Link to comment
Share on other sites

  • 0

неверное подключение, вернее неправильный адрес файла.

 

 


Warning: include(www.torawhite.ru/blocks/gb_tw_mag.php) [function.include]: failed to open stream: No such file or directory in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 2

Warning: include() [function.include]: Failed opening 'www.torawhite.ru/blocks/gb_tw_mag.php' for inclusion (include_path='.:') in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 2

укажите адрес не от домена, а от файла к которому подключаете

Link to comment
Share on other sites

  • 0

может я ошибаюсь, но мне кажется проблема с созданием экземпляра класса: new PDO

у меня такое было, когда создавал объект класса не на странице подключения файла через инклюд, а в самом подключаемом файле.

Link to comment
Share on other sites

  • 0

неверное подключение, вернее неправильный адрес файла.

 

 

Warning: include(www.torawhite.ru/blocks/gb_tw_mag.php) [function.include]: failed to open stream: No such file or directory in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 2

Warning: include() [function.include]: Failed opening 'www.torawhite.ru/blocks/gb_tw_mag.php' for inclusion (include_path='.:') in /home/virtwww/w_torawhite-ru_404794df/http/magazine/male_articles/style/index.php on line 2

укажите адрес не от домена, а от файла к которому подключаете

Это потому что я убрал http:// посоветовали ребята с форума php.ru. Посмотрите, сейчас эту ошибку не выдаёт

Link to comment
Share on other sites

  • 0

может я ошибаюсь, но мне кажется проблема с созданием экземпляра класса: new PDO

у меня такое было, когда создавал объект класса не на странице подключения файла через инклюд, а в самом подключаемом файле.

И как тут быть? Если не заносить подключение к базе в отдельный блок, то я потом весь сайт исправлять буду при смене пароля, например :(

 

Попробуйте подключать не через домен, а относительным путем

include ("/blocks/gb_tw_mag.php");

Тогда придётся плодить кучу копий этого блока, теряется смысл. Общие блоки у меня в корне лежат, функция будет искать папку blocks в той папке, где находится сама страница

Link to comment
Share on other sites

  • 0

проверьте правильность подключения этого файла, например выводом echo

<?php// ваш кодecho 'Инклуд работает!';?>

Есть подозрение, что не правильно подключается ваш файл

Link to comment
Share on other sites

  • 0

проверьте правильность подключения этого файла, например выводом echo

<?php// ваш кодecho 'Инклуд работает!';?>

Есть подозрение, что не правильно подключается ваш файл

Если так:

<?php	include ("http://www.torawhite.ru/blocks/gb_tw_mag.php");	echo 'Инклуд работает!';?>

То выводит, можете посмотреть

Link to comment
Share on other sites

  • 0
Тогда придётся плодить кучу копий этого блока, теряется смысл.

для этого нужно его вам как-то подключить к индексному файлу, потому что все запросы так или иначе идут через него.

Link to comment
Share on other sites

  • 0

Вы меня не поняли

echo 'Инклуд работает!'; засунуть в файл gb_tw_mag.php

Сделал так:

<?php	try {			$pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "ххх", "ххх");			$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);		}			catch (PDOException $e) {			echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();			exit;		}		echo 'Инклуд работает!';		?>Текст выводит
Link to comment
Share on other sites

  • 0

Уберите вообще эти try и cath

<?php	$pdo = new PDO("mysql:host=mysql87.1gb.ru; dbname=gb_tw_mag", "ххх", "ххх");	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);		?>

Потому, что... пахнет черной магией.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy