Php 我需要使用1-117中的for循环构建一个索引数组。我的两个选择都不起作用

Php 我需要使用1-117中的for循环构建一个索引数组。我的两个选择都不起作用,php,pdo,Php,Pdo,我的订单项目表中有117个项目。因此,我需要构建一个for循环来收集这些项目并将其返回到屏幕上,然后在用户更新一些项目之后,我需要更新数据库中的Order_items表 我想我需要使用1-117中的for循环构建一个索引数组。我的两个选择都不起作用,但我认为这已经接近我需要做的了 备选案文1: for ($i = 1; $i <= 117; $i++) { $item_qty[$i] = "SELECT Order_Items.qty F

我的订单项目表中有117个项目。因此,我需要构建一个for循环来收集这些项目并将其返回到屏幕上,然后在用户更新一些项目之后,我需要更新数据库中的Order_items表

我想我需要使用1-117中的for循环构建一个索引数组。我的两个选择都不起作用,但我认为这已经接近我需要做的了

备选案文1:

for ($i = 1; $i <= 117; $i++) {
    $item_qty[$i] = "SELECT Order_Items.qty 
                     FROM   Orders, Order_Items 
                     WHERE  Orders.id = Order_Items.order_id";
    }
订单项目表布局如下所示,以供参考:

CREATE TABLE Order_Items (
  orders_id     INT(5) NOT NULL,
  line_item_id  INT(5) NOT NULL,
  part_id       INT(3),
  qty           INT(7),
  stockroom_id  INT(3),
  CONSTRAINT items_key  PRIMARY KEY (orders_id,line_item_id),
  FOREIGN KEY (orders_id)   REFERENCES Orders(id),
);

您可以使用循环并打印数量值,正如您在选项2中尝试的那样,通过示例或参考的方式尝试此操作

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
/*check connection */
if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}
/*Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT  order_item.qty from  Orders o inner join order_items order_item  on order_item.orders_id=o.id")) {
   echo "Returned rows". mysqli_num_rows($result)."<br>";
   while ($row = $result->fetch_assoc()) {
         echo $row['qty'] . "<br>";
   }
   /*free result set */
   mysqli_free_result($result);
}
表顺序:

CREATE TABLE `orders` (
  `id` INT(11) NULL DEFAULT NULL,
  `order` VARCHAR(50) NULL DEFAULT NULL
 )
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
您将得到如下输出:

Returned rows3
11
13
10

谢谢你,rescobar。成功了。现在我可以继续将其合并到代码主体中。@TimSideris,很高兴帮助您,欢迎使用堆栈溢出。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。请回答另一个问题。我一直在使用PDO进行查询,尽管您的mysqli_查询可以工作,但我正在努力将其转换为PDO格式。我使用require'../database.php';访问数据库。然后我一直在做我的查询,好像$valid{$pdo=Database::connect;$pdo->setAttributePDO::ATTR_ERRMODE,pdo::ERRMODE_EXCEPTION;$sql=SELECT*FROM。。。。
CREATE TABLE `orders` (
  `id` INT(11) NULL DEFAULT NULL,
  `order` VARCHAR(50) NULL DEFAULT NULL
 )
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
Returned rows3
11
13
10