Php 我无法查询mysql数据库中是否有重复项//
我有一个网站,搜索一个订单id,并在php上回显它,如果它找到了那个id。问题是,如果有一个重复的id,它不会正确地查询它 我试着在网上搜索答案Php 我无法查询mysql数据库中是否有重复项//,php,sql,Php,Sql,我有一个网站,搜索一个订单id,并在php上回显它,如果它找到了那个id。问题是,如果有一个重复的id,它不会正确地查询它 我试着在网上搜索答案 <?php require('connect.php'); $order_id = $_POST['order_id']; $conn = mysqli_connect("", "", "", ""); $query = "SELECT * FROM `orders` WHERE order_id='$order_id' "; $resul
<?php
require('connect.php');
$order_id = $_POST['order_id'];
$conn = mysqli_connect("", "", "", "");
$query = "SELECT * FROM `orders` WHERE order_id='$order_id' ";
$result = mysqli_query($conn, $query) or die(mysqli_error($conn));
$count = mysqli_num_rows($result);
if ($count == 1) {
$sql = "SELECT `order_id`, `firstname`, `lastname`, `order_name`,
`qty`, `price`, `total`, `reg_date`, `status`
FROM `orders`
WHERE order_id='$order_id'";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo"<div id='orders'>";
echo "ORDER NUMBER: " . $row["order_id"];
echo"<br>";
echo"<br>";
echo "FIRST NAME: " . $row["firstname"];
echo"<br>";
echo"<br>";
echo "LAST NAME: " . $row["lastname"];
echo"<br>";
echo"<br>";
echo "ORDER: " . $row["order_name"];
echo"<br>";
echo"<br>";
echo "QUANTITY: " . $row["qty"];
echo"<br>";
echo"<br>";
echo "PRICE: " . $row["price"];
echo"<br>";
echo"<br>";
echo "ORDER TOTAL: " . $row["total"];
echo"<br>";
echo"<br>";
echo "STATUS: " . $row["status"];
echo"<br>";
echo"<br>";
echo "DATE ORDERED: " . $row["reg_date"];
echo"</div>";
}
}else{
echo"<div id='orders'>";
echo"INVALID ID ENTERED";
echo"</div>";
}
?>
不检查计数是否为1,检查计数是否为0。这样,如果有重复的订单,您将显示所有订单
也不需要对同一行执行两次查询。只需执行获取所需列的查询,并测试其计数
并使用准备好的语句来防止SQL注入
<?php
require('connect.php');
$order_id = $_POST['order_id'];
$conn = mysqli_connect("", "", "", "");
$sql = "SELECT `order_id`, `firstname`, `lastname`, `order_name`,
`qty`, `price`, `total`, `reg_date`, `status`
FROM `orders`
WHERE order_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $order_id);
$stmt->execute();
$stmt->store_result();
$count = $stmt->num_rows;
if ($count == 1) {
$stmt->bind_result($order_id, $firstname, $lastname, $order_name, $qty, $price, $total, $status, $reg_date);
while($row = $result->fetch()) {
echo"<div id='orders'>";
echo "ORDER NUMBER: " . $order_id;
echo"<br><br>";
echo "FIRST NAME: " . $firstname;
echo"<br><br>";
echo "LAST NAME: " . $lastname;
echo"<br><br>";
echo "ORDER: " . $order_name;
echo"<br><br>";
echo "QUANTITY: " . $qty;
echo"<br><br>";
echo "PRICE: " . $price;
echo"<br><br>";
echo "ORDER TOTAL: " . $total;
echo"<br><br>";
echo "STATUS: " . $status;
echo"<br><br>";
echo "DATE ORDERED: " . $reg_date;
echo"</div>";
}
}else{
echo"<div id='orders'>";
echo"INVALID ID ENTERED";
echo"</div>";
}
?>
你能给我们看一下这个订单的模式吗
表格也请更改这一行回显“输入的ID无效”
toecho“输入的ID无效行计数=$Count”代码>并向我们展示结果我知道我可以简单地更改订单id,这样就不必重复,但这不是我想要的,好的,但是你想怎么做?它返回的是输入的有效id行计数=2