2016-09-19 147 views
0

我想通過foreach循環更新數據庫中表單字段的數據。我在test_table ID和Input中有兩列。我通過while循環提取了數據,並且還打印了值。現在我想更新提取的值。請爲此提供一些指導。如何通過foreach循環更新

這裏是我的代碼,

$sql = "select * from test_table"; 

if($result = mysqli_query($conn, $sql)) 
{ 
    while($row = mysqli_fetch_array($result)) 
    { 
     $inputResult[]=$row; 


    } 

} <form method="POST"> <input type="text" value=<?php 
echo $inputResult[0]['Input']; ?> id="$inputResult[0]['ID']">  <input 
type="submit" name="submit"> </form>   <?php 

if (isset($_POST['submit']) 
    { 
    $input = $inputResult[]; 
    foreach($input as $inputs => $value) 
     { 
     $Sql = "update test_table set Input='$value' where = '$inputs'"; 
     mysqli_query($conn, $sql); 
     } 
    } ?> 

請讓我知道在我的代碼有什麼錯誤?提前致謝。

+0

失蹤關閉標籤,不知道'ID =「$ inputResult [0] ['ID']「',缺少名稱屬性,,或者如果你想檢查錯誤,請使用php'Error_reporting()' – devpro

+0

Sandeep,你的代碼很混亂,試着解釋你想達到什麼,例如,在你的''form'只有一個**文本輸入,並且你用'$ inputResult'數組的第一個**項填充它,但是在底部,你有一個'foreach'來處理數組中的所有項目,這很奇怪。 –

+0

主要我只需要更新一個字段,即數據庫中的輸入列。請給我一些指導或指導,我可以更新一個領域。 –

回答

0

下一個解決方案對於您的問題非常具體。輸入文本是第一個元素,因此在PHP代碼中,我們可以通過訪問數組$ _POST中的第一項來獲取輸入的ID和VALUE(更改由箭頭◄■■■指出):

<?php 
$sql = "select * from test_table"; 

if($result = mysqli_query($conn, $sql)) { 
    while($row = mysqli_fetch_array($result)) { 
     $inputResult[]=$row; 
    } 
} 
?> 

<form method="POST"> 
    <input type="text" value="<?php echo $inputResult[0]['Input'];?>" 
         name="<?php echo $inputResult[0]['ID'];?>" /> ◄■■■ NAME, NOT ID. 
    <input type="submit" name="submit" /> 
</form> 

<?php 
if (isset($_POST['submit'])) { 
    $value = reset($_POST); // ◄■■■ FIRST VALUE IN $_POST (['input']). 
    $id = key($_POST); // ◄■■■ FIRST KEY IN $_POST (['ID']). 
    $Sql = "update test_table set Input='$value' where id='$id'"; // ◄■■■ $VALUE AND $ID. 
    mysqli_query($conn, $sql); 
} 
?> 

我在輸入文本中將屬性id=替換爲name=,因爲PHP需要名稱而不是ids。

獲得第一個值和第一個鍵後,我們可以將它們插入到sql字符串中。

編輯:

修復缺失的標籤(哎呀!)。我想我找到了錯誤,它是如此的小,很難看到:注意下一行:

 ▼ 
    $Sql = "update test_table set Input='$value' where id='$id'"; // ◄■■■ $VALUE AND $ID. 

你看到左邊的變量:$Sql(首字母大寫)。現在讓我們看看下一行:

      ▼ 
    mysqli_query($conn, $sql); 

同樣的變量沒有大寫,一旦你解決這個問題,一切正常:

 ▼ 
    $sql = "update test_table set Input='$value' where id='$id'"; // ◄■■■ $VALUE AND $ID. 
    mysqli_query($conn, $sql); 
         ▲ 
+1

感謝您的回覆。我試過上面的代碼,但數據庫中的數據沒有更新。我想你也忘記了name屬性中的PHP標籤。 –

+0

@SandeepKumar,修復了缺失的標籤並編輯了答案來解釋錯誤,查看它! –