我整天都在和这个搜索功能做斗争。

// 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'].'
    &nbsp;&nbsp;|&nbsp;&nbsp;
    '.$schrow['doglf_sex'].
    '&nbsp;&nbsp;|&nbsp;&nbsp;
    '.$schrow['doglf_age'].'
    &nbsp;&nbsp;|&nbsp;&nbsp;
    '.$schrow['doglf_colour'].'
    &nbsp;&nbsp;|&nbsp;&nbsp;
    Neutered: '.$schrow['doglf_neuter'].'
    &nbsp;&nbsp;|&nbsp;&nbsp;
    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/

10-14 15:15
查看更多