我完全被我的代码困住了。
<?php
$id = $_GET['kid'];
if (isset($_POST['mainit'])) {
if(!empty($_POST['new_kateg'])){
$jaunakategorija = $_POST['new_kateg'];
$kmst = $conn->prepare('UPDATE kategorijas SET kat_vards=:katvards WHERE kat_id=:katid');
$kmst->bindParam(':katvards', $jaunakategorija);
$kmst->bindParam(':katid', $id);
$kmst->execute();
if($kmst->execute()){
header('Location: new_kateg.php');
} else {
$message = '<p class="red">Kļūda </p>';
}
} else {
$message = '<p class="red">Lauks nedrīkst būt tukšs! </p>';
}
}
?>
<form action="kateg_edit.php" method="POST">
<p>Ievadiet jaunās kategorijas nosaukumu</p>
<?php echo $id; ?>
<input type="text" name="new_kateg" placeholder="Ievadiet nosaukumu">
<input type="submit" name="mainit" value="Mainīt!">
</form>
这是我从数据库更新记录的代码。
我的网址是:localhost/....../kaeg_edit.php?kid=2
当我 echo $id 时,它说它是 2。代码完成其工作,但记录未更改。
如果我硬编码 $id ='2';
代码有效并记录 ID 为 2 已更改。
我很困惑为什么当我从 URL 获得相同的数字时它不会更改记录!
这是上一页,其中有按钮 labot(编辑)
<?php
$query = $conn->prepare("SELECT * FROM kategorijas");
$query->execute();
$result = $query;
echo
"<table class='table-fill'>
<tr>
<th>ID</th>
<th>Kategorijas nosaukums</th>
<th style='text-align:center;'>Darbība</th>"
;
foreach($result as $row)
{
echo "<tr>";
echo "<td>" . $row['kat_id'] . "</td>";
echo "<td>" . $row['kat_vards'] . "</td>";
echo '<td style="text-align:center;"><a href="kateg_edit.php?kid=' . $row['kat_id'] . '">Labot</a>
<a href="new_kateg.php?deleteid=' . $row['kat_id'] . '">Dzēst</a></td>';
}
echo "</tr>";
echo "</table>";
?>
感谢您的帮助...
最佳答案
而不是 $id = $_GET[' child ']; 尝试这个 $id = $_POST[' child ']; 代替 方法=“发布” 尝试这个 方法=“获取”
关于PHP - 脚本不从 URL 获取 id 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41870341/