我正在编写一个小脚本来从数据库中检索纱线细节。我使用ajax实时搜索脚本从数据库中检索基本while循环函数的数据,但我想通过向结果div标签提交按钮来处理空结果。
我确实经历了关于此事的第一篇文章,但它没有解决我的问题,这就是我从堆栈社区提出这个问题的原因。我的问题不是关于获取行计数我的问题是为什么if命令不起作用。
所以为了这个我使用下面的PHP脚本。
$searchString = "SELECT yarnId FROM yarndetails WHERE yarnId LIKE concat('%',:searchStr,'%')";
$dbSql = $dbConnect->prepare($searchString);
$dbSql -> bindParam(':searchStr', $_GET["q"]);
$dbSql -> execute();
$getCount = "SELECT COUNT(*) FROM yarndetails WHERE yarnId LIKE concat('%',:sStr,'%')";
$dbCount = $dbConnect->prepare($getCount);
$dbCount -> bindParam(':sStr', $_GET["q"]);
$dbCount -> execute();
$dataCount = $dbCount -> rowCount();
if($dataCount = 1){
while($row = $dbSql -> fetch(PDO::FETCH_ASSOC)) {
echo $row['yarnId'] . "\n";
}
}else{
echo "No Data";
}
我搜索了StackOverfllow并发现计算行的最佳方法是使用“SELECT count(8)..”语句但是有些错误,if条件如何直接传递给while循环。
有没有更好的方法可以做到这一点,或者我错过了一些东西,如果可以帮助请。
答案 0 :(得分:0)
$sql = "SELECT yarnId FROM yarndetails WHERE yarnId LIKE ?";
$stmt = $dbConnect->prepare($sql);
$stmt->execute(['%'.$_GET["q"].'%']);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($data){
echo json_encode($data);
}else{
echo "No Data";
}
鉴于你正在将它用于AJAX,条件基本上也是多余的,因为在JS中告诉空数组应该是明智的。最后5行只是
echo json_encode($data);