Вывод с двух таблиц на одну страницу

141
15 декабря 2016, 15:57

Нужно вывести данные из разных таблиц на одну страницу. При чем из одной таблицы все благополучно выводится. Из другой таблицы... никак не хочет.

Вот как я прописываю обращение к этим таблицам:

<?php
$result = mysqli_query($link, "SELECT img,title,links FROM slideshow");
$center = mysqli_query($link, "SELECT title,text,phone,adress FROM index");
/*Проверка*/
if ((!$result)&&(!$center))
{
echo "<br>Запрос на выборку данных из базы не прошел. Напишите об этом администратору по e-mail: admin@admin.com<br><strong>Код ошибки: </strong>";
/*Останавливаем*/
exit (mysqli_error($link));
}
/*Есть ли в $result  и $center хоть одна строка*/
if ((mysqli_num_rows($result)>0)&&(mysqli_num_rows($center)>0))
{
$myrow = $result->fetch_array(MYSQLI_ASSOC);
$info = $center->fetch_array(MYSQLI_ASSOC);
}
/*Если $result < 0 и $center < 0, то останавливаем*/
else
{
echo "<p>Информация по запросу не может быть извлечена, таблица пустая, или в ней нет записей, соответствующих запросу.</p>";
exit();
}
?>

Потом в нужных местах из таблицы index вывожу данные обычным способом:

<?php printf("%s",$info['title']);?>

Обе таблицы не пустые, в них есть нужные данные.

Ругается на строку:

$info = $center->fetch_array(MYSQLI_ASSOC);

Пишет или вот так

Fatal error: Call to undefined function mysali_fetch_assoc() in Z:\home\localhost\www\ves\blocks\center.php on line 45 ...или вот так: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in Z:\home\localhost\www\ves\blocks\center.php on line 42 Информация по запросу не может быть извлечена, таблица пустая, или в ней нет записей, соответствующих запросу.

Если указывать:

if ((!$result) || (!$center))

то выходит ошибка:

"Запрос на выборку данных из базы не прошел. Напишите об этом администратору по e-mail: admin@ves.ves Код ошибки: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index' at line 1".

P.S.: вообще стыдно... мне кажется, что все так примитивно у меня построено, а я даже в этом разобраться не могу...

Answer 1

Слово index является зарезервированным в MySQL. Поэтому во втором запросе ошибка - вместо имени таблицы MySQL встречает зарезервированное слово. Если переименовать таблицу - не вариант, то нужно взять слово index в одинарные обратные кавычки (backtick): `index`.

Документация по резервированным словам MySQL

READ ALSO
Целостность данных

Целостность данных

Начал создавать следующую таблицу:

146
Почему выскакиевает Unknown column &#39;*&#39; in &#39;field list&#39; [требует правки]

Почему выскакиевает Unknown column '*' in 'field list' [требует правки]

Можешь прислать точный запрос, отправляемый в бд?

149
SQL запрос к двум таблицам

SQL запрос к двум таблицам

Добрый деньПомогите, пожалуйста, разобраться с запросом

202