PHP / SQL更新表

时间:2017-05-28 11:37:42

标签: php mysqli

我正在尝试更新表格中的记录,但我不确定我在缺少的地方提到代码中的索引。我相信我的连接是正确的,虽然它应该获取索引。我已经为连接表格的插入功能做了同样的事情,一切正常。

这是我的update.php

<?php
$connect = mysqli_connect("localhost", "root", "", "produktai");
{
$sql = "UPDATE dazai SET sandely='" . $_POST['sandely'] ."' WHERE id='" . $_POST['id'] ."'";

  if(!mysqli_query($connect,$sql)) 
   {
      echo "pakeista"; 
    }
      else {
      echo "nepakeista" . mysqli_error($connect);
    } 
}
header("refresh:10; url=Dazai.php");
?>

好的,所以我将main.php修改为了这个。我收到此错误

  

数组([sandely] =&gt; 0 [Keisti] =&gt; Keisti)可能是错的。 0变为我输入的任何数字。

  <div class="prekiu_lentele">
  <table class="lenetele_prekems">
    <form action="update.php" method="post">
  <tr>
    <th>ID</th>
    <th width="30%">Prekes pavadinimas</th>
    <th>Gamintojas</th>
    <th>Spalva</th>
    <th>Kiekis</th>
    <th>Blizgumas</th>
    <th width="10%">Kaina</th>
    <th>Kategorija</th>
    <th width="20%">Kiekis sandelyje</th>
    <th>Ištrinti</th>
    <th width="20%">Pakeisti</th>

  </tr>


</div>

<?php
$query = "SELECT * FROM dazai ORDER BY id ASC";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_array($result))
{
?>

  <tr>
    <td><?php echo $row['id'];?></td>
    <td><?php echo $row['pavad'];?></td>
    <td><?php echo $row['Gamintojas'];?></td>
    <td><?php echo $row['Spalva'];?></td>
    <td><?php echo $row['Kiekis'];?></td>
    <td><?php echo $row['Blizgumas'];?></td>
    <td><?php echo $row['Kaina'];?>€</td>
    <td><?php echo $row['Kategorija'];?></td>
    <td><input type="text" style="width: 50px; margin-right:10px;"  name="sandely" value="<?php echo $row['sandely'];?> "</td>
    <td><a href="delete.php?recordID=<?php echo $row['id'];?>">X</a>
    <td><input type="submit" name="Keisti" value="Keisti" /></td>

  </tr>
</div>
</form>

1 个答案:

答案 0 :(得分:1)

您正在

发送ID的请求

<a href="update.php?ID=<?php echo $row['id'];?>" method=post>

当您尝试在

处检索id

$sql="UPDATE dazai SET sandely='$_POST[sandely]' WHERE id='$_POST[id]'";

这是因为字符串键区分大小写

快速肮脏的例子: https://ideone.com/KFMD4j

PS:

    您不需要
  1. mysqli_select_db($connect, "produktai");,因为您已经在连接mysqli_connect("localhost", "root", "", "produktai");上定义了相同的数据库

  2. 此外,请注意,如果您按原样使用$_POST[sandely],PHP将发出警告,因为您需要将 sandely 转换为字符串,因为您尚未定义 sandely常量变量。请改用$_POST['sandely']。 在这种情况下,我建议改为使用此查询:

    $sql = "UPDATE dazai SET sandely='" . $_POST['sandely'] ."' WHERE id='" . $_POST['id'] ."'";

    Is it okay to use array[key] in PHP?

  3. 了解详情
  4. 您应该使用GET而不是POST,因为您没有使用POST请求的方法,而只是在网址上附加变量。