[英]PHP SQL | Find row in table, if not exist, use other table
我正在开发一个页面,用户可以在该页面上跟踪订单状态。 当用户请求订单时,他们首先需要等待员工批准订单。 然后,将记录从aanvraag
表中删除并插入到datas
表中。
由于我还想为等待批准的客户提供状态,所以我尝试了下面的代码来检查记录是否存在于aanvraag
表中。 如果不是,则必须使用datas
表来获取信息。
我有一个名为$ggk
的检查,它检查记录是在aanvraag
还是datas
中。 我现在面临的问题是我无法从任一表中获取数据并返回一个空白页(因为$ggk == 2
)。 我已经在这个问题上工作了大约一天,但似乎无法找到问题所在。 有人知道我一直在看什么吗?
Ps 我打算对 ID 进行加密,以防止用户访问其他客户的订单数据。
<?php
include "db.php";
include "functions.php";
session_start();
if (isset($_GET['case'])) {
$id = $_GET['case'];
$sql = "SELECT * FROM `aanvraag` WHERE `ID`='$id'";
$resul = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($resul);
$ggk = 2;
if (mysqli_num_rows($resul) > 0) {
$sql = "SELECT * FROM `aanvraag` WHERE `ID`='$id'";
$resul = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($resul);
$ggk = 0;
}else{
$sql2 = "SELECT * FROM `datas` WHERE `id`='$id'";
$resul2 = mysqli_query($con, $sql);
$row2 = mysqli_fetch_assoc($resul);
$ggk = 1;
}
首先,您重复相同的查询两次。 你不需要它。 只需翻转条件。 同样在查询你从数据表中的 select 你有一个错字。 您使用$resul
resul 而不是$resul2
。 $sql
变量的拼写错误
if (isset($_GET['case'])) {
$id = $_GET['case'];
$sql = "SELECT * FROM `aanvraag` WHERE `ID`='$id'";
$resul = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($resul);
$ggk = 2;
if (mysqli_num_rows($resul) < 0) {
$sql2 = "SELECT * FROM `datas` WHERE `id`='$id'";
$resul2 = mysqli_query($con, $sql2);
$row2 = mysqli_fetch_assoc($resul2);
$ggk = 1;
}
}
此外,这种 SQL 非常危险,请使用 PDO 并准备语句https://www.php.net/manual/en/pdo.prepare.ZE1BFD762321E409CEE4AC0B6E849
此外,您使用的方法也不是很好。 为什么要将数据从一张表移动到另一张表? 再添加一列,您可以在其中跟踪订单状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.