PHP:使用$ _GET ['id']动态显示SQL行

时间:2014-10-09 21:45:11

标签: php mysql

我试图使用$ _GET ['id']在页面上显示我的SQL表格的某一行。

所以我将简要介绍一下我的设置:

我有一个列表页面,其中列出了我在SQL表中的所有车辆(一行等于一辆车),并且代码块循环以将所有行打印到页面。

我的商品详情页面的H1附有一个“a”标签,动态列出了网址ID,以下是一个示例:

<a href="carview.php?id='.$row["FullRegistration"].'">

所以这基本上是从我的SQL表中提取车辆的注册,并根据已经在表中循环的行给carview.php一个ID。

现在到了将显示动态内容的实际页面。

目前我正在使用<?php $carId = $_GET['id']; ?>来检索<a href="carview.php?id='.$row["FullRegistration"].'">代码块打印的ID。

因此,如果我回显$carId,它会将ID打印到与我的SQL数据库的"FullRegistration"列相同的页面上。

实际问题

我现在想知道如何查询具有相同ID的行,在我的情况下,ID是我的SQL表的完整"FullRegistration"列。

我现在如何打印出与网址中的ID匹配的行?假设我的一行的"FullRegistration"列值为TT05QVC,我希望它在url id匹配时显示该行的数据。

我猜我应该使用WHERE子句但是经过反复试验我似乎找不到办法来做到这一点。

我有什么想法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

从表中检索数据的查询可能类似于:

SELECT
    *
FROM
    your_table_name
WHERE
    `FullRegistration` = :id

这就是说“从表中选择注册等于名为的所有列:id”

更全面的例子是:

<?php

// ...assuming $carId is set somewhere before here

// make a connection to your database
$db = new PDO('mysql:host=localhost;dbname=your_db_name;charset=utf8',
    'username', 'password');

// prepare the query on your database
$query = $db->prepare('
    SELECT
        *
    FROM
        your_table_name
    WHERE
        FullRegistration = :id
');

// bind your id to the query
$query->execute(array(':id' => $carId));

// retrieve all the cars as an array
$cars = $query->fetchAll(PDO::FETCH_ASSOC);

if (count($cars)) {
    // if we've found some cars, display the details
    foreach ($cars as $car) {
        // dump to the screen
        var_dump($car);

        // you could output your html here
        // i.e. echo '<strong>' . $car['FullRegistration'] . '</strong>';
    }
}