2017-05-07 35 views
-3

刚开始时,我对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>&nbsp;</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>&copy; <?php echo date("Y"); ?> Classic Models Online.</p> 
    </footer> 
    </body> 
    </html> 

回答

0

您需要从你拥有的查询字符串得到PRODUCTLINE变量网址。你需要添加类似

if(isset($_GET['productLine'])){ 
    $productLine = $_GET['productLine']; 
} 
+0

谢谢,帮助!它只是标题不会更新。 <?php echo $ productLine ['productLine']; ?> – crashovski

+0

更改为echo $ _GET ['productLine']; – rbur0425

0

只是做if(isset($_GET["productLine"])){//do your stuff}

相关问题