在UNION sql查询后,页面代码停止执行

时间:2016-02-05 18:33:58

标签: php mysql pdo

我还是编写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>";
}
你可以看看,告诉我做错了吗? 提前谢谢。

2 个答案:

答案 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";

谢谢你们的帮助。