【发布时间】:2014-01-09 17:43:42
【问题描述】:
我有以下代码将用户的订单添加到数据库中。订单存储为一个数组 ($row),然后在 while 循环中将其设置为单个变量,然后将其设置为查询。不显示错误消息,但记录未添加到 MySQL 数据库。我已将我认为存在问题的区域以粗体表示。我查看了其他几个帮助线程并尝试了它们,但它们对此不起作用。
我对 PHP 还很陌生,所以请您尽量用简单的英语回答。 谢谢,如果有人可以帮我解决这个问题。
<?php
session_start();
?>
<?php
//db connect
require('connect_db.php');
//define variables
$id=$_SESSION['user_id'];
$fn=$_SESSION['first_name'];
$ln=$_SESSION['last_name'];
$bank=$_POST['bank'];
$ano=$_POST['account'];
$sort=$_POST['sort_code'];
//get order details
**$qa="SELECT total, product, quantity, FROM orders WHERE user_id='$id'";
$ra=mysqli_query($dbc, $qa);
while($row=mysqli_fetch_array($r, MYSQLI_ASSOC))
{
//insert to table
$product=$row['product'];
$quantity=$row['quantity'];
$total=$row['total'];
$qb="INSERT INTO order_contents(user_id, first_name, last_name, product, quantity, price, bank, account_no, sort_code) VALUES '$id', '$fn', '$ln', '$product', '$quantity', '$total', SHA1('$bank'), SHA1('$ano'), SHA1('$sort'))";
mysqli_query($dbc, $qb) or die(mysqli_error($dbc));
}**
//clear db
mysqli_query($dbc, "DELETE FROM orders WHERE user_id='$user_id'");
//mysql close
mysqli_close($dbc);
//redirect to thank you page
header("Location:http://emsworthsailspares.net23.net/thanks.php");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>
<body>
</body>
</html>
【问题讨论】:
-
您不需要两次打开/关闭 php 标签。只需在 PHP 的开头执行
-
你有一个错字。 $row = mysqli_fetch_array($r, MYSQLI_ASSOC) ) 应该是 $row = mysqli_fetch_array($ra, MYSQLI_ASSOC) )
-
谢谢。进行了更改,将来会有用,但还没有解决问题
-
谢谢戴夫。好像我有两件事出了问题,因为它仍然不起作用
-
您确定您在 $qa 处的查询正在返回结果,并且 while() 循环正在执行某些操作吗?回显 $qb 的内容。如果直接在 MySQL 中使用,结果查询会运行吗?
标签: php mysql arrays mysqli while-loop