php - 如何从 MySQL 显示特定 ID - 新手

标签 php mysql templates

我开发了一个 PHP 页面,显示 MySQL 表中的所有项目。现在我想在用户单击此页面上的某个项目时显示特定项目。如何获取此特定 ID 以及如何配置 <a href="">链接?

更新问题:

这是 cars.php 页面的标题(包含所有结果):

<?

require("admin/db/connect.php");

$sql = "SELECT * FROM tb_carros";

$limite = mysql_query("$sql");

$dados = array();
while ($sql = mysql_fetch_array($limite) ) {
    $dados[] = $sql;
}

?>

和 HTML:

    <?php foreach ($dados as $row): ?>

    <div id="containerResumo">

        <a href="#"> <!-- this is the key problem -->

        <div class="dadosResumo">
            <?=$row['carro']?><br /><br />
            Ano:   <?=$row['ano']?><br /><br />
            Câmbio: <?=$row['cambio']?><br /><br />
            R$ <?=$row['valor']?>
        </div><!-- END of dadosItem -->
        </a>

    </div><!-- END of containerResumo -->

    <?php endforeach ?>

现在,当用户单击某个项目时,我想打开页面 carro_item.php,其中加载了该项目的数据。

数据库中的引用 ID 是 id_carro

我尝试了多种类型的代码,但没有成功。即使我在浏览器上输入完整的网址,数据也不会加载:

http://adrianomachado.com/testesClientes/carro_item.php?id_carro=1

这是 carro_item.php 的 PHP:

<?

require("admin/db/connect.php");

$id = (int)$_GET['id_carro'];

$sql = "SELECT * FROM tb_carros WHERE id = $id";

?>

和 HTML:

            <div class="dadosItem">
                R$ <?php $valor ?><br /><br />
                Ano:   <?php $ano ?><br /><br />
                Kilometragem: <?php $km ?><br /><br />
                Cor: <?php $cor ?><br /><br />
                Portas: <?php $portas ?><br /><br />
                Combustível: <?php $combustivel ?><br /><br />
                Câmbio: <?php $cambio ?><br /><br />
                Final da placa: <?php $final_placa ?><br /><br />
                Carroceria: <?php $carroceria ?>
            </div><!-- END of dadosItem -->

有什么帮助吗?

更新02:

这是 carro_item 中的查询:

<?

require("admin/db/connect.php");

$sql = "SELECT * FROM tb_carros";

$limite = mysql_query("$sql");

$dados = array();
while ($sql = mysql_fetch_array($limite) ) {
    $dados[] = $sql;
}


?>

但是,显然它会返回所有结果,例如 cars.php 页面。问题是如何将结果过滤为与用户单击的链接 ID 相同的结果?

我不知道如何编写 $sql = "SELECT * FROM tb_carros"; 的代码行来做到这一点。

最佳答案

您可以使用$_GET variables .

如果链接在页面上的格式如下:

<a href="mypage.php?id=5">

然后在您的 PHP 页面中,您将能够通过全局 $_GET 数组访问该值。

$id = mysqli_real_escape_string($_GET['id']); // $id will have the value passed to it by the link

小心不要让自己对 SQL Injection 敞开心扉。尽管可以通过清理参数或使用参数化查询来实现。

引用文献

编辑:

要创建以正确方式格式化的链接,您首先要检索所需的所有 ID 并将它们存储在数组中。我将使用 $ids 作为示例。

$ids = array(1, 50, 25, 62, ...); // This was populated from the database

// Loop through all ids and output link code for each one
foreach ($ids as $link_id) {
  echo '<a href="mypage.php?id=' . $link_id . '">Click me</a>';
}

编辑2:

cars.php 中,链接格式如下:

<a href="/testesClientes/carro_item.php?id_carro=<?= $row['id'] ?>">

编辑3:

你的carro_item.php应该看起来像这样:

<?php

  require("admin/db/connect.php");

  $id = (int)$_GET['id_carro'];

  $sql = "SELECT * FROM tb_carros WHERE id = $id";

  $result = mysql_query($sql);

  $row = mysql_fetch_array($result);

  // ...
?>

<!-- And your HTML should look something like this -->
<!-- ... -->

<div class="dadosItem">
  R$ <?= $valor ?><br /><br />
  Ano:   <?= $row['ano'] ?><br /><br />
  Kilometragem: <?= $row['km'] ?><br /><br />
  Cor: <?= $row['cor'] ?><br /><br />
  Portas: <?= $row['portas'] ?><br /><br />
  Combustível: <?= $row['combustivel'] ?><br /><br />
  Câmbio: <?= $row['cambio'] ?><br /><br />
  Final da placa: <?= $row['final_placa'] ?><br /><br />
  Carroceria: <?= $row['carroceria'] ?>
</div><!-- END of dadosItem -->

<!-- ... -->

此外,您应该避免使用 mysql_* 形式的函数,因为它们已被弃用。请参阅Why shouldn't I use mysql_* functions in PHP?了解更多信息。

关于php - 如何从 MySQL 显示特定 ID - 新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15868157/

相关文章:

MySQL 多表触发

c++ - 为什么LNK1120 & LNK2019在模板和友元函数的情况下出现

c++ - 返回值是模板类型时如何使用std::result_of?

c++ - 编译时拓扑排序超出 C++ 中的递归深度

php - Wordpress 主题未在服务器文件夹上生成正确的主页

php - 使用 PHP 中的按钮从数据库中删除记录

Windows 8.1 更新后 MySQL 无法正常工作

php - mysql相关领域

php - 为什么 findOne($query) 在集合上工作而 find($query) 不使用 PHP 的 Mongo 驱动程序?

php - 为 zf2 实现密码验证器