我正在尝试更新表格中的记录,但我不确定我在缺少的地方提到代码中的索引。我相信我的连接是正确的,虽然它应该获取索引。我已经为连接表格的插入功能做了同样的事情,一切正常。
这是我的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>
答案 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:
mysqli_select_db($connect, "produktai");
,因为您已经在连接mysqli_connect("localhost", "root", "", "produktai");
上定义了相同的数据库
此外,请注意,如果您按原样使用$_POST[sandely]
,PHP将发出警告,因为您需要将 sandely 转换为字符串,因为您尚未定义 sandely常量变量。请改用$_POST['sandely']
。
在这种情况下,我建议改为使用此查询:
$sql = "UPDATE dazai SET sandely='" . $_POST['sandely'] ."' WHERE id='" . $_POST['id'] ."'";
您应该使用GET而不是POST,因为您没有使用POST请求的方法,而只是在网址上附加变量。