我整天都在和这个搜索功能做斗争。
// If breed2 NULL, search with this query
if ($breed2 == "NULL") {
$search = mysqli_query($dbconn, "SELECT * FROM `lstfnd` WHERE `doglf_stat` = 'Lost' AND `doglf_breed1` = '$breed1' AND `doglf_breed2` IS NULL AND `doglf_sex` = '$sex' AND `doglf_colour` = '$colour'");
// Else search with this query
} else {
$search = mysqli_query($dbconn, "SELECT * FROM `lstfnd` WHERE `doglf_stat` = 'Lost' AND `doglf_breed1` = '$breed1' AND `doglf_breed2` = '$breed2' AND `doglf_sex` = '$sex' AND `doglf_colour` = '$colour'");
}
$schrow = mysqli_fetch_assoc($search);
使用的变量是从下拉列表中检索的值。我已经检查过并且:
变量被正确地插入到查询中
查询的SQL是正确的,并在phpMyAdmin中检索正确的记录
问题似乎在于显示结果。
while($schrow = mysqli_fetch_assoc($search)) {
echo ('
<p><b><a class="blue" href="lostrep.php?lookup='.$schrow['doglf_id'].'">
#'.$schrow['doglf_id'].' : '.$schrow['doglf_name'].'</a></b>
<br>'.$schrow['doglf_breed1'].' X '.$schrow['doglf_breed2'].'
|
'.$schrow['doglf_sex'].
' |
'.$schrow['doglf_age'].'
|
'.$schrow['doglf_colour'].'
|
Neutered: '.$schrow['doglf_neuter'].'
|
Microchipped: '.$schrow['doglf_mchip'].'
<br>Lost in '.$schrow['doglf_pcode'].' on '.$schrow['doglf_date'].'</p>
');
}
我搞不清问题在哪里。有什么建议吗?
最佳答案
你预计会有多少结果?
如果只有一个,则在您发布的第一个块中的代码:$schrow = mysqli_fetch_assoc($search);
正在获取结果,这意味着当您调用while ($schrow = mysqli_fetch_assoc($search)) {
时,它将null
,因此不会显示任何内容。从第一个块中删除$schrow = mysqli_fetch_assoc($search);
,并进行尝试。
关于php - PHP搜索功能未检索结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30517981/