我的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),
);
答案 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