Php while循环中的MySQLi查询未添加到数据库

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

我有以下代码将用户的订单添加到数据库中。订单存储为数组($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>


无标题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中使用,结果查询会运行吗?