查询结构:SELECT FROM放置WHERE Type = 1

时间:2014-03-10 22:30:32

标签: php mysql sql

好的,所以我试图在我的一个数据库表中显示所有条目,其中字段'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));
?>

我不知道这是否是解决问题的正确方法,但它确实有效。无论如何,谢谢你的帮助。

2 个答案:

答案 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循环命令。