2017-03-28 12 views
0

我的Order_Items表中有117個項目。所以我需要構建一個for循環來收集和回顯這些項目到屏幕上,然後在用戶更新了一些項目之後,我需要更新數據庫上的Order_Items表。我需要使用1-117的for循環來構建索引數組。我的選項都不起作用

我想我需要使用for循環從1-117建立索引數組。我的兩種選擇都不起作用,但我認爲這與我需要做的事情很接近。

選項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

你可以使用一個循環並打印「數量「價值,正如您在選項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 
+0

謝謝你,@rescobar。這工作。現在我可以繼續將其納入主體代碼。 – Bricked

+0

@TimSideris,很高興爲您效勞,歡迎來到Stack Overflow。如果此答案或任何其他人解決了您的問題,請將其標記爲已接受。 – rescobar

+0

另一個問題,請。我一直在爲我的查詢使用PDO,儘管你的mysqli_query有效,但我努力將其轉換爲PDO格式。我使用require'../database.php';訪問數據庫。然後,我一直在做我的查詢,就好像($ valid){pdo = Database :: connect();}。 $ pdo-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION); $ sql =「SELECT * FROM ....) – Bricked