[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите с циклами
lexxbry
И снова здравствуйте, дамы и господа.
запутался снова с циклами
есть таблица tabl1
в ней поля:
field_id, item_id, value(поле value это дата)

заполнена к примеру так

3,2,26-08-2017
4,2,11-07-2014
3,3,26-08-1965
4,3,09-09-2001

если вывожу кодом
$fid = "SELECT * FROM `tabl1` WHERE DAY(`value`)=DAY(CURRENT_DATE) AND MONTH(`value`)=MONTH(CURRENT_DATE) AND `field_id`= '3'";
$result = $mysqli->query($fid);
$lom = mysqli_fetch_array($result);
echo $lom['item_id'];


то id вытаскивается как надо, но только в единственном экземпляре
то есть просто показывает "2" что собственно закономерно

если выводить кодом
$fid = "SELECT * FROM `tabl1` WHERE DAY(`value`)=DAY(CURRENT_DATE) AND MONTH(`value`)=MONTH(CURRENT_DATE) AND `field_id`= '3' ";
$result = $mysqli->query($fid);
while($lom = mysqli_fetch_array($result));

{

echo $lom['item_id'];

}

то ничего не выводит(даже ошибок)
а по идее должен выводить "2" и "3"
подскажите где косячу

Эли4ка
$content = array();

while ( $res = mysqli_fetch_assoc( $query_result ) )
{
$content[] = $res;
}

print_r($content);

А если так, что выводит?
lexxbry
$fid = "SELECT * FROM `tabl1` WHERE DAY(`value`)=DAY(CURRENT_DATE) AND MONTH(`value`)=MONTH(CURRENT_DATE) AND `field_id`= '3'";
$result = $mysqli->query($fid);

$content = array();

while ( $res = mysqli_fetch_assoc( $result ) )
{
$content[] = $res;
}

print_r($content);

выводит
Array ( [0] => Array ( [field_id] => 3 [item_id] => 2 [value] => 1932-08-26 ) [1] => Array ( [field_id] => 3 [item_id] => 4 [value] => 1945-08-26 ) )
Array

я так понимаю надо где то задать нужное поле
miketomlin
lexxbry, у вас там получился пустой цикл из-за точки с запятой smile.gif
miketomlin
$result нужно всегда поверять. Потому что ошибки в запросах могут возникать во время выполнения, даже если вы все правильно с виду напишете.
miketomlin
И смешивать ООП-синтаксис и процедурный – это жесть. Имеется в виду в вашем коде при работе с БД.
lexxbry
Цитата (miketomlin @ 26.08.2018 - 17:24)
lexxbry, у вас там получился пустой цикл из-за точки с запятой smile.gif

Спасибо
точно не убрал ;
miketomlin
Тогда вопрос, зачем вообще ставили? Из do-while что ли лепили while?
lexxbry
нет, с первого кода
$lom = mysqli_fetch_array($result);
echo $lom['item_id'];


miketomlin
Так тоже никогда не делайте, если нет 100%-гарантии, что строка будет (SELECT 1).
Правильно так:

if ($lom = mysqli_fetch_array($result)) {
echo $lom['item_id'];
}

И плюс else по желанию/ситуации.
lexxbry
да это просто проверял правильность выборки для 1 поля
еще раз спасибо
Быстрый ответ:

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