Не получить все результаты из SQL-запроса
Я пытаюсь построить запрос, используя Cookies (Избранные элементы)
<?php
$favnum=0;
$FavList = 'WHERE ';
foreach ($_COOKIE as $name => $value) {
if ($value == '1'){
if($name != 'PHPSESSID'){
$FavList .= 'num = "'.$name.'" OR ';
$favnum++;
}
}
}
$FavList = substr($FavList, 0,-3).' ';
$FavList = 'SELECT * FROM RETS '.$FavList;
?>
Там, где FavNum несколько избыточен, он просто подсчитывает количество фаворитов, если есть 0 фаворитов, у меня может быть запасной вариант.
Запрос Echos вышел следующим образом:
SELECT * FROM RETS WHERE
num = "E2671855" OR
num = "E2659557" OR
num = "E2689932" OR
num = "E2670962" OR
num = "E2684630" OR
num = "E2677355"
Как видно из приведенного выше кода, это 6 цифр, совпадающих с серийным номером. Я могу скопировать и вставить этот запрос непосредственно в Navicat, и запрос вернет 6 результатов.
Продолжение:
<?php
$sql = $FavList;
$results = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($results) or die(mysql_error());
while($row = mysql_fetch_array($results)){
echo 'Things that make me go Hmmm....<br/>';
} ?>
Это возвращает следующее эхо:
Things that make me go Hmm....
Things that make me go Hmm....
Things that make me go Hmm....
Things that make me go Hmm....
Things that make me go Hmm....
Других частей в файле нет. Прямо сейчас я взял свой php-файл запроса и сократил его до этой конкретной части файла просто для устранения неполадок... Как вы можете видеть, я получаю только 5 результатов. Редактор запросов получает 6 результатов.
Поэтому я провел тестирование, которое я не знаю, поможет ли это сузить проблему...
while($row != mysql_fetch_array($results)) {echo '<script>alert(".$row['num'].")</script>';}
Я получаю номер обратно. конечно его в петле. без остановки навсегда, однако я получаю номер обратно... и да... это тот, который я скучаю.
1 ответ
Измените свой php-код ниже:
<?php
$sql = $FavList;
$results = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($results) or die(mysql_error()); // this is the missing data
echo 'Things that make me go Hmmm....<br/>'; // print the missing data
while($row = mysql_fetch_array($results)){
echo 'Things that make me go Hmmm....<br/>';
}
?>
Или вы можете просто сделать это:
<?php
$sql = $FavList;
$results = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
while($row = mysql_fetch_array($results)){ // all data will be fetch, including the missing data
echo 'Things that make me go Hmmm....<br/>';
}
}
?>
Это должно работать.