Php while循环中的MySQLi查询未添加到数据库
我有以下代码将用户的订单添加到数据库中。订单存储为数组($row),然后在while循环中将其设置为单个变量,然后将其设置为查询。不会显示错误消息,但不会将记录添加到MySQL数据库中。我已将我认为是问题所在的区域用粗体表示。我已经查看了其他几个帮助线程并尝试了它们,但它们不适用于此 我对PHP相当陌生,所以请尽量用简单的英语回答。 如果有人能帮我,谢谢Php while循环中的MySQLi查询未添加到数据库,php,mysql,arrays,mysqli,while-loop,Php,Mysql,Arrays,Mysqli,While Loop,我有以下代码将用户的订单添加到数据库中。订单存储为数组($row),然后在while循环中将其设置为单个变量,然后将其设置为查询。不会显示错误消息,但不会将记录添加到MySQL数据库中。我已将我认为是问题所在的区域用粗体表示。我已经查看了其他几个帮助线程并尝试了它们,但它们不适用于此 我对PHP相当陌生,所以请尽量用简单的英语回答。 如果有人能帮我,谢谢 <?php session_start(); ?> <?php //db connect require('c
<?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>
无标题1
您最好只进行一次查询,这样就不需要通过客户端来回查询:
INSERT INTO order_contents (user_id, first_name, last_name, product, quantity, price, bank,
account_no, sort_code)
SELECT '$id', '$fn', '$ln', product, quantity, total, SHA1('$bank'), SHA1('$ano'), SHA1('$sort')
FROM orders
WHERE user_id=$id
请注意查询的select部分混合了动态和“固定”字段类型。将查询放入$ra,然后尝试使用$r
$ra=mysqli_query($dbc, $qa);
while($row=mysqli_fetch_array($ra, MYSQLI_ASSOC))
而($row=mysqli\u fetch\u数组($r,mysqli\u ASSOC))
您应该像上面的代码一样将$r更改为$ra
while($row=mysqli_fetch_array($ra, MYSQLI_ASSOC))
您不需要两次打开/关闭php标记。只要在结尾处做就行了你有一个打字错误$row=mysqli_fetch_数组($r,mysqli_ASSOC))应该是$row=mysqli_fetch_数组($ra,mysqli_ASSOC)),谢谢。已经进行了更改,并且在将来会很有用,但它并没有解决问题。似乎有两件事出了问题,因为它仍然不起作用。您确定$qa处的查询正在返回结果,并且while()循环正在执行某些操作吗?不要重复$qb的内容。如果直接在MySQL中使用,结果查询会运行吗?