2017-04-11 13 views
0

發送值這是我得到我輸入名稱和值從表中稱爲optionale的代碼,並做一些與這些:While循環 - 從許多人只有一個輸入是通過POST

<form role="form" autocomplete="off" action="includes/functions/fisa-init.php" method="POST"> 
<?php 
    connectDB(); 
    $query = mysqli_query($mysqli, "SELECT * FROM `optionale`") or die(mysqli_error($mysqli)); 
    while($row = mysqli_fetch_array($query)) 
    { 
?> 
    <span><?php echo $row['denumire']; ?></span> 
    <input type="text" name="nrBucati"> 
    <input type="hidden" value="<?php echo $row['cod']; ?>" name="codProdus"> 
<?php } ?> 
</form> 

的optionale表看起來像這樣:

Optionale table

的HTML看起來像這樣:

HTML look

正如你可以在最後的圖片中看到,我在HTML中,輸入一個名稱(從optionale表中獲取)與實際輸入中,我寫的值。

FISA-的init.php:

$stmt3 = $mysqli->prepare(" 
      UPDATE 
      `stocuri` 
      SET 
      `cantitate` = `cantitate` - ? 
      WHERE `cod` = ? 
      "); 


    $stmt3->bind_param("is", $bucata, $cod); 

    // set parameters and execute 
    $bucata = mysqli_real_escape_string($mysqli, $_POST['nrBucati']); 
    $cod = mysqli_real_escape_string($mysqli, $_POST['codProdus']); 

    if (!$stmt3->execute()) 
     { 
      echo "Execuția a întâmpinat o eroare: (" . $stmt3->errno . ") " . $stmt3->error; 
     } 
    $stmt3->close(); 

    $mysqli->close(); 

在上面的代碼(FISA-的init.php)我試圖把所有的輸入值從我的HTML和更新行的另一個表稱爲stocuri

enter image description here

正如你所看到的,只有從stocuri表第二行已更新,但我在所有的5個輸入寫道值。它只有最後一次輸入。

如何修改while循環以獲取我的所有輸入值?

如果有什麼不清楚的地方,我會道歉百次。我將解釋所有需要的信息。

P.S.表optionale中的cod與表stocuri中的cod相同。這樣,我知道在哪裏更新值。

+0

哇,你理解的非常快我的問題。感謝您的回覆。我忘了我必須使用類似name =「codProdus []」的東西。我會搜索它。 –

+0

謝謝。請發佈答案以選擇它。這對你的聲譽有好處:D。 –

回答

0

每個<input>必須有個人名稱或命名數組。

所以給每一個aditional的數字,如name1,name2或使用一個命名的數組一樣name[]

最後這name="codProdus[]"是您的解決方案。

在這裏閱讀更多 HTML input arrays

有一個愉快的一天

+0

PHP警告:mysqli_real_escape_string()期望參數2是字符串,數組在C:\ wamp64 \ www \ includes \ functions \ fisa-init.php中給出,位於第196行。這是什麼意思? –

+0

@BogdanC'$ _POST ['codProdus']'是一個數組。 – JustOnUnderMillions

+0

我在html中切換到了name =「codProdus []」和name =「nrBucati []」。 –