2016-09-30 69 views
0

首先,我爲我的英語不好(它不是我的主要語言)道歉插入從表中選擇,並在另一臺

此代碼應該選擇從訂單選擇交易的ID,以顯示有關訂單詳細信息頁面,然後它將從order_items表中搜索數據庫並將其顯示給用戶。如果這是我需要從同一張表中顯示的信息,那麼我對此沒有任何問題。唯一的區別在於它應該從另一個表中顯示。 (我已將外鍵設置爲order_id)。

的index.php

<a data-toggle="modal" data-target=".bs-example-modal-lg" href="viewform.php?view_id=<?php echo $row['id']; ?>">View Order Details</a> 

viewform.php

if(isset($_GET['view_id']) && !empty($_GET['view_id'])) 
{ 
    $id = $_GET['view_id']; 
    $stmt_edit = $DB_con->prepare('SELECT order_id, product_id, quantity FROM `order_items` WHERE id =:uid'); 
    $stmt_edit->execute(array(':uid'=>$id)); 
    $edit_row = $stmt_edit->fetch(PDO::FETCH_ASSOC); 
    extract($edit_row); 
} 
else 
{ 
    header("Location: index.php"); 

當運行此代碼我得到這個錯誤:

警告:提取物()預計參數1是陣列,布爾在第13行給出的C:\ xampp \ htdocs \ shopping_cart \ cms \ orders \ editform.php

致命錯誤:未捕獲PDOException:SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法中有錯誤;請檢查與您的MariaDB服務器版本相對應的手冊,以便在C:\ xampp \ htdocs \ shopping_cart \ cms \ orders \ editform.php中的第4行'WHERE ID = '34''附近使用正確的語法:42堆棧跟蹤: #0 C:\ xampp \ htdocs \ shopping_cart \ cms \ orders \ editform.php(42):PDOStatement-> execute()#1 {main}拋出C:\ xampp \ htdocs \ shopping_cart \ cms \ orders \ editform。 42線上的PHP

+0

在你的其他問題http://stackoverflow.com/q/39731535/你正在使用'$ db_con'和這個'$ DB_con',爲什麼這個改變了?你在用哪種API連接這裏?爲什麼你使用'extract()'?以及從$ row ['id']'獲取的東西如何?你的問題太不清楚了。您發佈的錯誤「near」WHERE ID ='34'''不支持您發佈的內容。 –

+0

ahh是這是$ db_con的一個錯誤,現在我應該用小寫字母來修復它。現在它給了我這個錯誤 致命錯誤:未捕獲錯誤:調用成員函數prepare()在C:\ xampp \ htdocs \ php_shopping_cart \ cms \ orders \ editform.php:null堆棧跟蹤:#0 {main}拋出在第10行上的C:\ xampp \ htdocs \ shopping_cart \ cms \ orders \ editform.php edith:我使用解壓縮,因爲我想顯示值$ edit_row。在我的情況下是一個數組。 我認爲這裏的問題是,它不是從索引頁鏈接讀取id並將其與viewform頁面連接起來。 –

回答

0

發現解決方案..這是一個簡單的解決方案。它應該是order_id而不是id,因爲它從第一個表中獲取id並使用第二個表進行驗證。

$stmt_edit = $db_con->prepare('SELECT order_id, product_id, quantity FROM order_items WHERE order_id =:uid'); 
相關問題