[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как правильно вывести
Страницы: 1, 2, 3
lexxbry
есть две таблицы в базе данных:
tabl1 - id, name
tabl2 - id, tabl1_id, value

tabl1.id = tabl2.tabl1_id

определены переменные
$item = $this->item;
$valid = $item->id; (эта переменная цепляет id из первой таблицы в соответствии с документом)

при
echo '<div class="title_top info"><h2>'.$valid.'</h2>';
на странице выводится как положено id из таблицы tabl1

необходимо вместо переменной $valid вывести значение из tabl2 - value

присваиваем
$result = mysqli_query("SELECT * FROM 'tabl2' WHERE 'tabl1_id'= '$valid' ");
$val1 = mysqli_fetch_array($result);

далее при выводе
echo '<div class="title_top info"><h2>'.$val1['value'].'</h2>';

ничего не выводит

подскажите где косяк

Zzepish
lexxbry
Скорей всего у тебя вывод ошибок не включен. Надо настроить вывод ошибок в php.ini
lexxbry
точно

вот ошибки
Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/u14053/data/www/site/templates/kvart/html/com/item/default.php on line 40

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /var/www/u14053/data/www/site/templates/kvart/html/com/item/default.php on line 41

вот строки
40 $result = mysqli_query("SELECT * FROM 'tabl2' WHERE 'tabl1_id'= '$valid' ");
41 $val1 = mysqli_fetch_array($result);
Zzepish
lexxbry
Идем в документацию, и понимаем, что mysqli_query принимает 2 обязательных параметра - соединение с базой и сам запрос. У тебя есть запрос, но нет подключения к базе.
Kusss
в процедурном стиле в mysqli нужно передавать первым параметром коннект.
В mysql это не обязательно
lexxbry
да есть такое дело
добавил
$mysqli = new mysqli('localhost', 'user', 'pass', 'bd');
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
$result = $mysqli->query("SELECT * FROM 'tabl2' WHERE 'tabl1_id'= '$valid' ");
$val1 = mysqli_fetch_array($result);




теперь ошибка
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/u14053/data/www/site/templates/kvart/html/com/item/default.php on line 45

строка 45
$val1 = mysqli_fetch_array($result);
AllesKlar
ДЕЛАТЬ подключиться_к_базе
ЕСЛИ НЕ подключение_успешно
всё_плохо
выход
КОНЕЦ ЕСЛИ

ДЕЛАТЬ запрос_к_базе
ЕСЛИ запрос_вернул_ошибку
всё_плохо
выход
КОНЕЦ ЕСЛИ

ДЕЛАТЬ выбрать_значение_из_результируещего_набора
ЕСЛИ значения_есть
ДЕЛАТЬ вывести_значение
КОНЕЦ ЕСЛИ





_____________
[продано копирайтерам]
lexxbry
не совсем понятно
miketomlin
Результаты всех запросов тоже нужно обязательно проверять.

Кавычки у имени таблицы и поля неправильные.
miketomlin
...и строк в выборке может быть 0. Это что касается третьего фрагмента AllesKlar'а.
miketomlin

if (!($result=mysqli_query...)) {
error(503);
return;
}

if (!($row=mysqli_fetch_assoc...)) {
error(404);
return;
}
lexxbry
все равно ума не приложу что не так....
кавычки вроде бы правильные
как проверять результаты всех запросов???
строк в выборке не может быть 0
они обязательны к заполнению
miketomlin
Тролль что ли? Тебе влоб написали, что нет, и даже расписали кодом, как для «особо одаренного». Да, проверки обязательны. Ошибки могут возникать во время выполнения даже на корректных запросах и т.п.
miketomlin
Если совсем не разбираетесь, обратитесь к спецам. Нефиг мучить себя и окружающих.
lexxbry
нет не троль(просто новичек и пытаюсь разобраться)
итого имеем код

$mysqli = new mysqli('localhost', 'user', 'pass', 'bd');
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
$result = $mysqli->query("SELECT * FROM 'tabl2' WHERE 'tabl1_id'= '$valid' ");
if (!($result=mysqli_query...)) {
error(503);
return;
}
$val1 = mysqli_fetch_array($result);
if (!($val11=mysqli_fetch_array...)) {
error(404);
return;
}


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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.