我还是编写PHP代码的初学者。 几个小时后,我正在尝试编写一个脚本,该脚本从两个数据库表中获取结果并显示结果(在while while循环中)+分页。 我无法解决的问题是,如果没有结果 - 脚本会停止执行页面,看起来会减少一半。
这是查询:
$query = "SELECT phId FROM photographers WHERE phCity=$row_cities[cityId] UNION SELECT pservOwner FROM phServices WHERE pservOwner = $row_prePhotographer[phId] AND pservService=$row_service[serviceId] LIMIT $redove, $broinastranica";
$query_params = array();
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex) {
die(fusllPageError("Error","System error 103."));
}
$row_photographers = $stmt->fetch();
if(!empty($row_photographers['phId'])) {
do { ... } while($row_photographers = $stmt->fetch());
else {
echo "<h1>There are no results</h1>
<p class=\"text-center\">Please check again after few days.</p>";
}
你可以看看,告诉我做错了吗?
提前谢谢。
答案 0 :(得分:0)
检查第一个select中的phId,第二个select语句中的pservOwner是相同的数据类型。
尝试为每个select语句使用括号。喜欢 (从table1中选择id1) 联盟 (从table2中选择id2)
答案 1 :(得分:-1)
看起来解决方案非常简单。在每个WHERE语句的值周围使用单引号就可以了。
以下是查询现在的样子:
$query = "SELECT phId FROM photographers WHERE phCity='$row_cities[cityId]' UNION ALL SELECT pservOwner FROM phServices WHERE pservOwner = '$row_prePhotographer[phId]' AND pservService='$row_service[serviceId]' LIMIT $redove, $broinastranica";
谢谢你们的帮助。