我开发了一个 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/