我需要使用1-117的for循环构建索引数组。我的选择都没有用

时间:2017-03-28 02:34:31

标签: php pdo

我的Order_Items表中有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";
    }

选项2:

$sql = "SELECT  Order_Items.qty 
        FROM    Orders, Order_Items 
        WHERE   Orders.id = Order_Items.order_id";

foreach ($database->query($sql) as $results)
 {
    echo $results["qty"];
 }

Order_Items表格布局如下:

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),
);

1 个答案:

答案 0 :(得分:1)

您可以使用循环并打印&#34;数量&#34;如您在选项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);
}

表:order_items

CREATE TABLE `order_items` (
  `orders_id` INT(5) NOT NULL,
  `line_item_id` INT(5) NOT NULL,
  `part_id` INT(3) NULL DEFAULT NULL,
  `qty` INT(7) NULL DEFAULT NULL,
  `stockroom_id` INT(3) NULL DEFAULT NULL
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

表格订单:

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