lexxbry
20.08.2018 - 13:25
есть две таблицы в базе данных:
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
20.08.2018 - 14:10
lexxbry
Скорей всего у тебя вывод ошибок не включен. Надо настроить вывод ошибок в php.ini
lexxbry
20.08.2018 - 14:24
точно
вот ошибки
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
20.08.2018 - 14:41
lexxbryИдем в документацию, и понимаем, что mysqli_query принимает 2 обязательных параметра - соединение с базой и сам запрос. У тебя есть запрос, но нет подключения к базе.
в процедурном стиле в mysqli нужно передавать первым параметром коннект.
В mysql это не обязательно
lexxbry
20.08.2018 - 14:58
да есть такое дело
добавил
$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
20.08.2018 - 15:27
ДЕЛАТЬ подключиться_к_базе
ЕСЛИ НЕ подключение_успешно
всё_плохо
выход
КОНЕЦ ЕСЛИ
ДЕЛАТЬ запрос_к_базе
ЕСЛИ запрос_вернул_ошибку
всё_плохо
выход
КОНЕЦ ЕСЛИ
ДЕЛАТЬ выбрать_значение_из_результируещего_набора
ЕСЛИ значения_есть
ДЕЛАТЬ вывести_значение
КОНЕЦ ЕСЛИ
_____________
[продано копирайтерам]
lexxbry
20.08.2018 - 15:31
не совсем понятно
miketomlin
20.08.2018 - 16:37
Результаты всех запросов тоже нужно обязательно проверять.
Кавычки у имени таблицы и поля неправильные.
miketomlin
20.08.2018 - 16:41
...и строк в выборке может быть 0. Это что касается третьего фрагмента AllesKlar'а.
miketomlin
20.08.2018 - 16:45
if (!($result=mysqli_query...)) {
error(503);
return;
}
if (!($row=mysqli_fetch_assoc...)) {
error(404);
return;
}
lexxbry
20.08.2018 - 16:57
все равно ума не приложу что не так....
кавычки вроде бы правильные
как проверять результаты всех запросов???
строк в выборке не может быть 0
они обязательны к заполнению
miketomlin
20.08.2018 - 17:02
Тролль что ли? Тебе влоб написали, что нет, и даже расписали кодом, как для «особо одаренного». Да, проверки обязательны. Ошибки могут возникать во время выполнения даже на корректных запросах и т.п.
miketomlin
20.08.2018 - 17:04
Если совсем не разбираетесь, обратитесь к спецам. Нефиг мучить себя и окружающих.
lexxbry
20.08.2018 - 17:09
нет не троль(просто новичек и пытаюсь разобраться)
итого имеем код
$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;
}
просто не приходилось строить сложные запросы
нативно разбирался как то или иное значение выводится,
а тут надо притянуть из другой таблицы
будьте добры подскажите
что ставить вместо ....
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.