从表中选择并插入另一个表中

时间:2016-09-30 01:28:40

标签: php mysql

首先,我为我糟糕的英语(不是我的主要语言)道歉

此代码应选择通过从订单页面选择交易的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");

当我运行此代码时,我收到此错误:

警告:extract()要求参数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):在C:\ xampp \ htdocs \ shopping_cart \ cms \ orders \ editform中抛出PDOStatement-&gt; execute()#1 {main}第42行的.php

1 个答案:

答案 0 :(得分:0)

找到了解决方案..它确实是一个简单的解决方案。它应该是order_id而不是id,因为它从第一个表中获取id并用第二个表验证它。

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