PHP - 脚本不要从URL

时间:2017-01-26 09:28:46

标签: php mysql get

我完全被我的代码困住了。

<?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 /....../ kateg_edit.php? kid = 2

当我回复$ id时它表示它是2.代码完成它的工作但记录没有改变
如果我硬编码$ id ='2';

代码工作并记录ID为2的记录已被更改。

我坚持为什么当我从网址获得相同的号码时它不会改变记录!

这是上一页,其中是按钮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>";
?>

感谢您的帮助...

2 个答案:

答案 0 :(得分:0)

而不是     $ id = $ _GET ['kid']; 试试这个     $ id = $ _POST ['kid']; 代替     方法= “POST” 试试这个     方法= “GET”

答案 1 :(得分:0)

无论如何,感谢每个人的帮助!

已解决 BY MYSELF!

刚刚从GET中插入一个带有值的输入字段,然后在从表单中获取的查询ID中使用。     &#34;&GT;