2013-04-18 206 views
0

我剛剛接觸編程,並且一直在使用本地主機上的phpmyadmin。我正在網頁上製作一個簡單的表格來顯示數據。問題是,每次我加載頁面,它只顯示錶格,而不是表格會加載。這裏是我的代碼:表不會填充數據

<?php 
require('../model/database.php'); 
require('../model/product_db.php'); 

$products = get_products(); 

if (isset($_POST['action'])) { 
    $action = $_POST['action']; 
} else if (isset($_GET['action'])) { 
    $action = $_GET['action']; 
} else { 
    $action = 'under_construction'; 
} 



// Display the product list 
    include('view-productList.php'); 

?>  

這是視圖productList.php:

<?php include '../view/header.php'; ?> 


<div id="main"> 

    <h1>Product List</h1> 



    <div id="content"> 
     <!-- display a table of products --> 
     <h2><?php echo $name; ?></h2> 
     <table> 
      <tr> 
       <th>Code</th> 
       <th>Name</th> 
       <th class="right">Version</th> 
       <th>&nbsp;</th> 
      </tr> 

      <?php foreach ($products as $product) : ?> 
      <tr> 
       <td><?php echo $product['productCode']; ?></td> 
       <td><?php echo $product['name']; ?></td> 
       <td class="right"><?php echo $product['version']; ?></td> 
       <td><form action="." method="post"> 
        <input type="hidden" name="action" 
          value="delete_product" /> 
        <input type="hidden" name="product_id" 
          value="<?php echo $product['productID']; ?>" /> 
        <input type="hidden" name="category_id" 
          value="<?php echo $product['categoryID']; ?>" /> 
        <input type="submit" value="Delete" /> 
       </form></td> 
      </tr> 
      <?php endforeach; ?> 
     </table> 
     <p><a href="?action=show_add_form">Add Product</a></p> 
    </div> 

</div> 
<?php include '../view/footer.php'; ?> 

查詢頁面:

<?php 
function get_products() { 
    global $db; 
    $query = 'SELECT * FROM products 
       ORDER BY productID'; 
    $products = $db->query($query); 
    return $products; 
} 

function get_products_by_category($category_id) { 
    global $db; 
    $query = "SELECT * FROM products 
       WHERE products.categoryID = '$category_id' 
       ORDER BY productID"; 
    $products = $db->query($query); 
    return $products; 
} 

function get_product($product_id) { 
    global $db; 
    $query = "SELECT * FROM products 
       WHERE productID = '$product_id'"; 
    $product = $db->query($query); 
    $product = $product->fetch(); 
    return $product; 
} 

function delete_product($product_id) { 
    global $db; 
    $query = "DELETE FROM products 
       WHERE productID = '$product_id'"; 
    $db->exec($query); 
} 
+2

查詢在哪裏? –

+0

foreach($ products as $ product) - $ products需要是某種查詢的結果。看看mysqli或PDO,因爲我們沒有看到你如何連接到數據庫的例子 –

+0

對不起,我剛剛發佈它。 – user2288600

回答

0

product_db.php不應該爲一個被註釋掉 - 假設這是保存「查詢頁面」內容的文件。

$products = get_products(); 

應該在包含之後立即出現。

和你的for循環所需要的結果取並不僅僅是產品資源:

<?php foreach ($products->fetch() as $product) : ?> 

假設取()是有關此類型的資源,因爲我們看不到你的DB類。

+0

謝謝,我已經解決了大部分問題,不知道您的意思是什麼$ products = get_products();後來我的包括 – user2288600

+0

我的意思是你需要調用函數來分配$ products,就這些。你正在包含查詢文件,對嗎?所以自然你首先包含文件,然後調用頁面上需要的函數。 –

+0

它包括後,但似乎並沒有正常工作,但如果我把它放在它的要求下工作 – user2288600