好的,所以我试图在我的一个数据库表中显示所有条目,其中字段'Type'的值为1,但我一直收到错误。我不确定如何构建我的查询。
<?php
include 'page-start.php';
?>
<?php
$myQuery = "SELECT places.*, Type.TypeName ";
$myQuery .= "FROM places ";
$myQuery .= "WHERE Type = '1' ";
$myQuery .= "INNER JOIN Type ON places.Type = Type.TypeID";
$result = $con->query($myQuery);
if (!$result) die('Query error: ' . mysqli_error($result));
?>
<?php
while($row = mysqli_fetch_array($result))
{
echo ' <div class="one-third column" id="education">';
echo '<h3 class="place-head"><a href="educationdetails.php?ID=' . $row['PlaceID'] . '">' . $row['PlaceName'] . '</a></h3>';
echo ' <div class="a-image">';
echo '<img src="'. $row['ImageURL'] . '"/>';
echo ' </div>';
echo ' <div class="a-info">';
echo ' </div>';
echo '</div>';
}
?>
在玩完之后我设法通过在第一个查询下面执行查询来实现它,如下所示:
<?php
$myQuery = "SELECT places.*, Type.TypeName ";
$myQuery .= "FROM places ";
$myQuery .= "INNER JOIN Type ON places.TypeID = Type.TypeID";
$result = $con->query($myQuery);
if (!$result) die('Query error: ' . mysqli_error($result));
?>
<?php
$myQuery = "SELECT * FROM `places` WHERE `TypeID` = '1'";
$result = $con->query($myQuery);
if (!$result) die('Query error: ' . mysqli_error($result));
?>
我不知道这是否是解决问题的正确方法,但它确实有效。无论如何,谢谢你的帮助。
答案 0 :(得分:1)
我相信你有SQL语法错误?
$myQuery = "SELECT places.*, Type.TypeName ";
$myQuery .= "FROM places ";
$myQuery .= "WHERE Type = '1' ";
$myQuery .= "INNER JOIN Type ON places.Type = Type.TypeID";
内部联接应位于谓词之前(“WHERE Type ='1'”):
$myQuery = "SELECT places.*, Type.TypeName ";
$myQuery .= "FROM places ";
$myQuery .= "INNER JOIN Type ON places.Type = Type.TypeID";
$myQuery .= "WHERE Type = '1' ";
答案 1 :(得分:0)
不要将$result
传递给mysqli_error,这不是它想要的,它希望你的$con
变量作为参数传入。
此外,由于您正在使用mysqli对象,因此只需调用$con->error
即可打印错误消息。
既然你要返回一个mysqli_result对象,你应该只使用
while ($row = $result->fetch_array(MYSQLI_ASSOC) )
作为你的while循环命令。