如何将详细信息从SQL查询传递到details.php页面

时间:2014-04-01 19:05:58

标签: php html5

非常新的PHP所以请放轻松我:) 如果产品在显示结果页面后被用户点击,我需要显示产品的详细信息(制造商,标签号等)。用户最初在搜索表单中键入,然后我得到catalogue_query.php以显示结果,图像等,这些都很好。每个产品都有自己唯一的ID,我很幸运地将它显示在details.php页面的url中,这样我就做对了。

然而,当我点击某个项目时,即使我确实在URL中显示了带有正确ID的“details.php”页面,它返回的是数据库中第一个项目的图像和详细信息,而不是我点击的实际项目 - 换句话说,图片和详细信息与网址中的ID不匹配。

以下是显示结果的代码:

    <?php
        $query = $_POST ['query'];
        $db = mysqli_connect ('localhost','root','root','asset_catalog');
        // Check connection
        if (mysqli_connect_errno())
         {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
         }

        $result = mysqli_query($db,"SELECT * FROM assets WHERE Description LIKE '%$query%' OR Manufacturer LIKE '%$query%' ORDER BY Description ");


        echo "<table border='0'>

        <tr>

        </tr>";

        while($row = mysqli_fetch_array($result))
         {
            if (($i % 5) == 0) echo "<tr>";
             echo "<td><img src='".$row['Image']."' id='queryimg'><br>
             <a href='details.php?ID=".$row['ID']."' style='color: #fff;'>{$row[Description]}</a></td>";
                if (($i % 5) == 4) echo "</tr>";
              $i++;
         }

        if ( $i > 0 && ($i-1) % 3 < 2) echo "</tr>";

        echo "</table>";

    ?>

这是我的php for details.php页面:

<?php           
                $db = mysqli_connect ('localhost','root','root','asset_catalog');
                // Check connection
                if (mysqli_connect_errno())
                    {
                        echo "Failed to connect to MySQL: " . mysqli_connect_error();
                    }

                $ID = isset($_GET['ID']) ? (int) $_GET['ID'] : null;
                $result = mysqli_query($db,"SELECT * FROM assets WHERE ID = $ID");
                $row = mysqli_fetch_array($result);

                    echo "<table border='0'>

                    <tr>

                    </tr>";


                        echo "<tr>";
                        echo "<td><img src='".$row['Image']."' id='queryimg_details'>
                        <br>
                        {$row[Description]}</a>
                        <br>
                        {$row[Manufacturer]}
                        <br>
                        {$row[Tag_Num]}</td>";
                        echo "</tr>";


        ?>

有人能指出我正确的方向吗?我迷失了我做错了什么 - 或者没做错。 非常感谢提前!

1 个答案:

答案 0 :(得分:0)

$row可以有多个条目,因此您应该遍历它:

foreach($row as $r) {
    // do stuff with this row like $r['Image']
}

您可能也想更改变量名称。