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 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64