【问题标题】:PHP/SQL Updating tablePHP/SQL 更新表
【发布时间】:2017-10-28 20:11:41
【问题描述】:

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

这是我的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 修改为这个。我收到此错误

Array ( [sandely] => 0 [Keisti] => 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>

【问题讨论】:

  • 更新查询中的逻辑没有意义
  • 首先使用 print_r 检查你在 POST 数组中得到了什么,你可以进行进一步的操作。很高兴知道哪些数据可用于处理。我相信你会很容易地自己修复错误。...
  • " Array ( ) " 我没有得到任何东西。
  • href 没有方法,表单有,但我在任何地方都看不到表单。

标签: php mysqli


【解决方案1】:

您正在通过ID 发送请求

&lt;a href="update.php?ID=&lt;?php echo $row['id'];?&gt;" method=post&gt;

当您尝试在

检索 id

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

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

快速-n-脏示例: 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. 您应该使用 GET 而不是 POST,因为您没有使用 POST 请求的方法,而只是在 url 处附加变量。

【讨论】:

  • 感谢您指出这些错误,但我仍然不知道为什么它会告诉我这些错误 注意:未定义的索引:第 6 行 C:\xampp\htdocs\Saitas\update.php 中的 Sandely 注意: 未定义索引:第 6 行 C:\xampp\htdocs\Saitas\update.php 中的 id
  • 这些可能是由于使用sandely 作为常量而不是"sandely" 的字符串(对于id 相同)引起的警告。 PHP 将其转换为字符串,但会给出此警告。我编辑了我的答案以添加它。
  • 到目前为止运气不好,它一直给我未定义索引的错误:对于 id 和 sandely。我也更改了你给我的代码
  • 尝试打印出print_r($_POST),看看里面有什么。
  • " 数组 ( ) " 我不确定
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
  • 2012-12-06
相关资源
最近更新 更多