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

 

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

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

 

Вы имеете ввиду индексный файл главной страницы? У меня все файлы называются индекс, лежат в разных папках, конечно)

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

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

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

Сейчас попробую

Пишут на форуме php.ru :

 

ну понятно)))) короче. вы когда пхп заказываете по хттп его по дефолту жрет пхп машина и выплевывает результат работы. и результат работы скорее всего не пхп а хтмл. подключать надо локально. только голову включить и понять какие ошибки сыпятся. это основы языка.

Я пока не постиг php-сленг :blink:

Уберите вообще эти 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

  • 0

Попытаюсь перевести,

т.к. вы подключаете файл через абсолютный адрес (через домен) то файл получаете в готовом HTML-е. Из информации которую вы выводите только (Инклуд работает!) все остальное обрабатывается и закрывается (все ваше подключение к БД подключается и забывается и в итоге вы не получаете объект PDO, на что потом и ругается интерпретатор 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).

Вывод один - подключать только локально.

 

Попробуйте вынести в корень само подключение а путь указывать "../gb_tw_mag.php"

Тогда не придется кучу копий плодить, а единственное неудобство - это адрес к файлу (gb_tw_mag.php) в разных файлах разный путь

Edited by Jey Val Star
Link to comment
Share on other sites

  • 0

Попытаюсь перевести,

т.к. вы подключаете файл через абсолютный адрес (через домен) то файл получаете в готовом HTML-е. Из информации которую вы выводите только (Инклуд работает!) все остальное обрабатывается и закрывается (все ваше подключение к БД подключается и забывается и в итоге вы не получаете объект PDO, на что потом и ругается интерпретатор 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).

Вывод один - подключать только локально.

 

Попробуйте вынести в корень само подключение а путь указывать "../gb_tw_mag.php"

Тогда не придется кучу копий плодить, а единственное неудобство - это адрес к файлу (gb_tw_mag.php) в разных файлах разный путь

Если я не ошибаюсь, то локальное подключение будет работать только для файла, который сам в корне лежит. Мне интересно одно, Вы например, как-то иначе подключаетесь? Ведь это основа, должна быть какая-то инструкция-панацея подключения к базе, как правильно. Такого же быть не должно

Link to comment
Share on other sites

  • 0

Эээээ...

Кажись мы друг друга не поняли.

На сколько я понял у вас есть куча папок в которых лежат файлы index.php (они и есть то что отображается на экране) 

К примеру по адресу http://torawhite.ru/magazine/male_articles/style/ у вас есть папка "magazine" в ней папка "male_articles", далее "style" и в этой папке "style" лежит файл index.php (код которого вы мучаете).

Если все правильно я описал - то далее

 

вам в корне вашего сайта нужно засунуть файл  "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;		}		?>

а из файла /magazine/male_articles/style/index.php подключать локально.

Примерно так

<?php    include '../../../gb_tw_mag.php';
Link to comment
Share on other sites

  • 0

 

Эээээ...

Кажись мы друг друга не поняли.

На сколько я понял у вас есть куча папок в которых лежат файлы index.php (они и есть то что отображается на экране) 

К примеру по адресу http://torawhite.ru/magazine/male_articles/style/ у вас есть папка "magazine" в ней папка "male_articles", далее "style" и в этой папке "style" лежит файл index.php (код которого вы мучаете).

Если все правильно я описал - то далее

 

вам в корне вашего сайта нужно засунуть файл  "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;		}		?>

а из файла /magazine/male_articles/style/index.php подключать локально.

Примерно так

<?php    include '../../../gb_tw_mag.php';

 

 

:facepalmxd: 

он по фтп инклудит....

$root = $_SERVER['DOCUMENT_ROOT'];include ($root . "/blocks/gb_tw_mag.php");

Спасибо Вам огромное. Вчера просто отключился. Оба способа работают! Хорошо, что ещё существуют люди, которые готовы всё разжевать новичку. Все когда-то начинали :)

Edited by Torawhite
Link to comment
Share on other sites

  • 0

Сам php вроде бы советует использовать mysqli вместо mysql, там тоже есть ООП-подход (хотя я не против PDO, использую его для sqlite).

А ещё он советует не использовать скобки у include, потому что это не функция, а директива языка.

Link to comment
Share on other sites

  • 0
Сам php вроде бы советует использовать mysqli вместо mysql, там тоже есть ООП-подход (хотя я не против PDO, использую его для sqlite). А ещё он советует не использовать скобки у include, потому что это не функция, а директива языка.

 

он на две темы растянул. ниже таже тема но с пдо.

по поводу скобок... надо доки почитать. тут хз. я и так и так использую

echo тоже со скобками можно 

кстати, по теме - вон даже как можно, я и не знал cd24d9febb.jpg

Link to comment
Share on other sites

  • 0

 

Сам php вроде бы советует использовать mysqli вместо mysql, там тоже есть ООП-подход (хотя я не против PDO, использую его для sqlite). А ещё он советует не использовать скобки у include, потому что это не функция, а директива языка.

 

он на две темы растянул. ниже таже тема но с пдо.

по поводу скобок... надо доки почитать. тут хз. я и так и так использую

echo тоже со скобками можно 

кстати, по теме - вон даже как можно, я и не знал cd24d9febb.jpg

 

То бишь моя php-безграмотность сделала php-грамотного человека ещё более грамотным! ^_^  А мой первоначальный метод не был лишён смысла, так понимаю?

Link to comment
Share on other sites

  • 0
То бишь моя php-безграмотность сделала php-грамотного человека ещё более грамотным!   А мой первоначальный метод не был лишён смысла, так понимаю?

признаю как факт - всё знать не возможно)) я с таким не сталкивался никогда(только результат обработки в виде html получал), но считаю что php код через http протокол получать это как то через ж.... но смысла не лишено))  Представь что ты увидишь будто кто то сковородой гвозди забивает. Смысла не лишено? помоему нет.... но странно...... 

 

 

 

Короче я запутался. там как то хреново написано. тестить надо. перечитайте что там написано.  "Если целевой сервер интерпретирует целевой файл как php код ", а затем пишется что инклудится результат. вот и думай что там....  код получать или только результат

Link to comment
Share on other sites

  • 0

"Если целевой сервер интерпретирует целевой файл как php код ", а затем пишется что инклудится результат.

Противоречия нет. Если он интерпретирует его как код, то он его исполняет. Логично же? Не код исполнить невозможно. Следовательно, имеем аналог file_get_contents
Link to comment
Share on other sites

  • 0

интерпретирует целевой файл как php код. у термина интерпретация несколько значений. одно из них - определение.

Ну да, и раз это код, то его надо выполнить. Если бы он отдавал его как есть, значит он интерпретировал данные как обычный текст.
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