PHP单击链接时将数据从数据库显示到表格中
刚开始时,我对PHP很陌生,所以我可能错过了明显的东西,请耐心等待。PHP单击链接时将数据从数据库显示到表格中
我有超链接(飞机,船只列车等),当我点击超链接“飞机”,我希望所有的飞机记录显示在一张桌子。当我点击不同的车辆时,我希望它用新数据刷新表格。
问题是,当我点击链接“火车”它不刷新表和显示相关数据,它保持相同的数据。我如何告诉php当我点击链接“飞机”,我想显示该产品线的所有记录。
感谢所有帮助
As you can see in the pic, i clicked train but it still displays vintage cars
这里是我的代码:
<?php
require_once('dbconfig.php');
//get productLine
if (!isset($productLine)) {
$productLine = filter_input(INPUT_GET, 'productLine', FILTER_VALIDATE_INT);
if ($productLine == null || $productLine == FALSE) {
$productLine = 'Trains';
}
}
//get all product lines
$query = 'SELECT * FROM productlines';
$statement = $db->prepare($query);
$statement->execute();
$productLines = $statement->fetchAll();
$statement->closeCursor();
//Get products for product line
$queryProducts = 'SELECT * FROM products WHERE productLine = :productLine ORDER BY productCode';
$statement1 = $db->prepare($queryProducts);
$statement1->bindValue(':productLine', $productLine);
$statement1->execute();
$products = $statement1->fetchAll();
$statement1->closeCursor();
?>
<!DOCTYPE html>
<html>
<head>
<title>Classic Models Online</title>
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<header><h1>ClassicModels Online</h1>
<p>Classic models for all automobile enthusiasts</p>
</header>
<main>
<h1>Classic Models Product List</h1>
<aside>
<!--Display list of product lines-->
<h2>Product Lines</h2>
<nav>
<ul>
<?php foreach ($productLines as $productLine) : ?>
<li>
<a href=".?productLine=<?php echo $productLine['productLine']; ?>">
<?php echo $productLine['productLine']; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
</nav>
</aside>
<br>
<section>
<!--Display a table of products for product line-->
<h2><?php echo $productLine['productLine']; ?></h2>
<table>
<tr>
<th>Code</th>
<th>Name</th>
<th>Scale</th>
<th>Price</th>
<th>Total Sold</th>
<th> </th>
</tr>
<?php foreach ($products as $product) :?>
<tr>
<td> <?php echo $product['productCode']; ?> </td>
<td> <?php echo $product['productName']; ?> </td>
<td> <?php echo $product['productScale']; ?> </td>
<td> <?php echo $product['MSRP']; ?> </td>
<td> <?php echo $product['quantityInStock']; ?> </td>
<td> <form action="update_product.php" method="post">
<input type="hidden" name="productCode" value="<?php echo $product['productCode']; ?>">
<input type ="hidden" name="productLine" value="<?php echo $product['productLine']; ?>">
<input type="submit" value="Update">
</form> </td>
</tr>
<?php endforeach; ?>
</table>
<p><a href="add_product_form.php">Add Product</a></p>
</section>
</main>
<footer>
<p>© <?php echo date("Y"); ?> Classic Models Online.</p>
</footer>
</body>
</html>
您需要从你拥有的查询字符串得到PRODUCTLINE变量网址。你需要添加类似
if(isset($_GET['productLine'])){
$productLine = $_GET['productLine'];
}
谢谢,帮助!它只是标题不会更新。 – crashovski
更改为echo $ _GET ['productLine']; – rbur0425
只是做if(isset($_GET["productLine"])){//do your stuff}
'的
'如果(isset?! ($ productLine))'来自哪里? “之前”需要有某种东西,而不是“之后”。 –
@ Fred-ii-点没有改变任何东西。看起来像我需要添加if(isse($ _ GET ['productLine'])) – crashovski