问题出在这里:我有一些数据库,我从我的页面发送了一些值。它们被发送并保存但它们是重复的。我没有发送它两次的周期或条件。我有一个类似的代码,它的工作正常。
session_start();
$firstname = mysqli_real_escape_string($conn, $_POST['firstname']);
$lastname = mysqli_real_escape_string($conn, $_POST['lastname']);
$town = mysqli_real_escape_string($conn, $_POST['town']);
$street = mysqli_real_escape_string($conn, $_POST['street']);
$housenum = mysqli_real_escape_string($conn, $_POST['housenum']);
$psc = mysqli_real_escape_string($conn, $_POST['psc']);
$tel = mysqli_real_escape_string($conn, $_POST['tel']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$payment = mysqli_real_escape_string($conn, $_POST['payment']);
$idBand = "";
$idBand = $_SESSION['idBand'][0];
for($i=1;$i<count($_SESSION['idBand']);$i++)
{
$idBand = $idBand .", ". $_SESSION['idBand'][$i];
}
$sql = "INSERT INTO orders (idband, payment, firstname, lastname, town,
street, housenum, psc, tel, email)
VALUES ('$idBand', '$payment', '$firstname', '$lastname', '$town',
'$street', '$housenum', '$psc', '$tel', '$email')";
$result = mysqli_query($conn,$sql);
if ($conn->query($sql) === TRUE)
{
echo "Objednávka úspěšná.<br>";
unset($_SESSION['idBand']);
header("Location:../index.php?index.php=success");
exit();
}
else
{
echo "Error updating record: " . $conn->error;
header("Location:../index.php?index.php=ERROR");
exit();
}
答案 0 :(得分:1)
从代码中删除以下行,因为您已使用$conn->query($sql)
创建条目,因此请注释下面显示的该行。
$result = mysqli_query($conn,$sql);
还有一件我注意到的事情是,$idBand
获取第一个元素然后再循环它从一个元素开始而不是你可以使用join
或implode
,如下所示
$idBand = implode(",",$_SESSION['idBand']);
但这只是另一种方法,而不是主要问题是多次触发查询的问题。
我希望此更改能解决您的问题