duangu4980 2016-08-05 03:16
浏览 23
已采纳

搜索功能,准备好的语句不显示结果

When the search matches all displays perfectly. But when there is no match the no result message does not display. Please any insight on this one. Thanks upfront

$result = "SELECT T1.ID, T2.Image1, T1.unoone, T1.unotwo, T1.unothree,
T1.unofour
FROM T1 LEFT JOIN T2 ON (T1.ID=T2.Image1) 
WHERE T1.ID=T2.Image1 AND T1.unoone LIKE '%".$uno_one."%' 
AND T1.unotwo LIKE '%".$uno_two."%' 
AND T1.unothree LIKE '%".$uno_three."%' 
AND T1.unofour LIKE '%".$uno_four."%' ";

$stmt = mysqli_stmt_init($con);
$query = mysqli_stmt_prepare($stmt, $result);

if(!$query) {

       die("no result");

} else {
/* execute statement */
mysqli_stmt_execute($stmt);

/* bind result variables */
mysqli_stmt_bind_result($stmt, $id, $img[0], $uno_one, $uno_two, 
$uno_three, $uno_four);

/* fetch values */
while (mysqli_stmt_fetch($stmt)) {

echo $img[0];
echo $uno_one;
echo $uno_two;
echo $uno_three; 
echo $uno_four;

  }

/* close statement */
mysqli_stmt_close($stmt);

}
  • 写回答

1条回答 默认 最新

  • dth8312 2016-08-05 03:21
    关注

    As Madan Sapkota said : "if(!$query) { only check if any error exists".

    You need to use a function for counting results, like mysqli_stmt_num_rows():

    if(mysqli_stmt_num_rows ( $stmt ) == 0 ){ echo "there is no result";}
    // The while loop after won't be run when no result are found, no need to put an else here.
    while (mysqli_stmt_fetch($stmt)) {
      ...    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动