PHP SQL |在 table 中查找行,如果不存在,则使用其他 table
PHP SQL | Find row in table, if not exist, use other table
我正在开发一个用户可以跟踪订单状态的页面。当用户请求订单时,他们首先需要等待员工批准订单。然后,记录从 aanvraag
table 中删除并插入到 datas
table.
中
由于我也想给等待审批的客户提供状态,所以我尝试了下面的代码来检查aanvraag
table中是否存在该记录。如果没有,则必须使用datas
table 来获取信息。
我有一个名为 $ggk
的检查,它检查记录是在 aanvraag
还是 datas
中。我现在面临的问题是我无法从 table 中获取数据并返回空白页(因为 $ggk == 2
)。我已经在这个问题上工作了大约一天,但似乎找不到问题所在。任何人都知道我一直在看什么?
P.s。我打算加密 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;
}
首先,您重复相同的查询两次。你不需要它。简单的翻一下condition。同样在查询 select from datas table 时,你有一个错字。您使用 $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.php
另外你用的方法也不是很好。为什么要将数据从一个 table 移动到另一个?再添加一列,您可以在其中跟踪订单状态。
我正在开发一个用户可以跟踪订单状态的页面。当用户请求订单时,他们首先需要等待员工批准订单。然后,记录从 aanvraag
table 中删除并插入到 datas
table.
由于我也想给等待审批的客户提供状态,所以我尝试了下面的代码来检查aanvraag
table中是否存在该记录。如果没有,则必须使用datas
table 来获取信息。
我有一个名为 $ggk
的检查,它检查记录是在 aanvraag
还是 datas
中。我现在面临的问题是我无法从 table 中获取数据并返回空白页(因为 $ggk == 2
)。我已经在这个问题上工作了大约一天,但似乎找不到问题所在。任何人都知道我一直在看什么?
P.s。我打算加密 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;
}
首先,您重复相同的查询两次。你不需要它。简单的翻一下condition。同样在查询 select from datas table 时,你有一个错字。您使用 $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.php
另外你用的方法也不是很好。为什么要将数据从一个 table 移动到另一个?再添加一列,您可以在其中跟踪订单状态。