2016-09-19 66 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,修复了缺失的标签并编辑了答案来解释错误,查看它! –