PHP/SQL试图获取status=something的所有订单号,并将订单号放入数组中

PHP/SQL试图获取status=something的所有订单号,并将订单号放入数组中,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我正在厨房的显示屏上工作。如果我知道订单号,我会让它工作的。我试图获取status=“INQUEUE”所在的所有订单号,并将这些编号放入一个数组中。目标是对“INQUEUE”订单总数进行计数,并使屏幕上的段仅显示arr[0]-arr[4]。由于某种原因,这段代码会导致错误。 我希望将所有状态为“INQUEUE”的订单号都捕获到数组中,以便将订单显示为arr[X]您收到的具体错误是什么 查询中突出的一点是,变量需要用单引号括起来,因此看起来如下所示: $sql = "select ORDI

我正在厨房的显示屏上工作。如果我知道订单号,我会让它工作的。我试图获取status=“INQUEUE”所在的所有订单号,并将这些编号放入一个数组中。目标是对“INQUEUE”订单总数进行计数,并使屏幕上的段仅显示arr[0]-arr[4]。由于某种原因,这段代码会导致错误。


我希望将所有状态为“INQUEUE”的订单号都捕获到数组中,以便将订单显示为arr[X]

您收到的具体错误是什么

查询中突出的一点是,变量需要用单引号括起来,因此看起来如下所示:

$sql    = "select ORDID from HEADERS where CurrentStatus='$status'";
有时,当我处理动态构建的查询时,我喜欢回显查询字符串,以便准确地看到它是如何发送到服务器的

另外,在处理动态构建的SQL查询时,最好养成将准备好的语句用于参数化查询的习惯

此外,与ArtisticPhoenix达成一致,我建议移植到另一个库。最后,确保数组索引描述符用双引号括起来。以下是您使用mysqli的代码:

$link = mysqli_connect("dbserver", "user", "password", "database");
$status= "INQUEUE";    
$arr    = array();
$sql    = "select ORDID from HEADERS where CurrentStatus='$status'";
$result = mysqli_query($link, $sql);  
while( $row = mysqli_fetch_assoc($result)) {
  $arr[] = $row["ORDID"];
}

首先,PHP5.5(或5.6不记得了)中不推荐使用mysql*函数系列,PHP7+中删除了它。因此,如果您学习,我将查看
mysqli
PDO
。PDO是两者中的佼佼者,但需要更多的面向对象编程知识。并学习如何使用准备好的语句。也就是说,这是什么,
ORDID
您将它视为一个常量,您希望用
$row[“ORDID”]
代替那.PS。PDO允许您将结果作为该列的数组获取<代码>$stmt->fetchAll(PDO::FETCH_COLUMN,1)如果我没记错的话,并允许您跳过循环。我可以使用$result=$conn->query($sql)让它工作;而不是$result=mysql\u query($sql)或die(mysql\u error());有趣的我从未使用过“或死(MySQL_error());”方法之前,所以我没有一个很好的答案,为什么。这有助于得到一些东西出现!我还没有在阵列中捕获Orid。我在把它插入数组时也用引号试过了。愚蠢的问题,但是这个查询有效吗?您是否使用MyPHPAdmin或直接从MySQL服务器本身对数据库进行了测试?我也同意ArtisticPhoenix使用不同的库。我对mysqli有很好的经验,移植代码使用它会很容易。是的!它获取具有该状态的ORID。
$link = mysqli_connect("dbserver", "user", "password", "database");
$status= "INQUEUE";    
$arr    = array();
$sql    = "select ORDID from HEADERS where CurrentStatus='$status'";
$result = mysqli_query($link, $sql);  
while( $row = mysqli_fetch_assoc($result)) {
  $arr[] = $row["ORDID"];
}