PHP行删除

PHP行删除,php,html,mysql,sql,Php,Html,Mysql,Sql,我正在为一个学校项目做一个留言簿。我能做的就是删除其中的帖子。不幸的是,当双击“删除”的“提交”按钮时,它会删除所有帖子 我需要它做的是删除一篇文章(你想删除的文章或整个postrow),当你按下相应的按钮时。我有点困了,所以任何帮助都会很好 以下是我的留言簿页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra

我正在为一个学校项目做一个留言簿。我能做的就是删除其中的帖子。不幸的是,当双击“删除”的“提交”按钮时,它会删除所有帖子

我需要它做的是删除一篇文章(你想删除的文章或整个postrow),当你按下相应的按钮时。我有点困了,所以任何帮助都会很好

以下是我的留言簿页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0     
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <h1>Välkommen till gästboken!</h1>
    <h2>Posta till Gästboken</h2>
    <form action="home.php" method="post">  
        <table>
            <tr>
              <td>Titel:</td>
              <td><input type="text" name="titel" style="width: 600px;" /></td>
            </tr>
            <tr>
              <td>Inlägg:</td>
              <td><textarea name="inlägg" style="width: 600px; height: 300px;"></textarea></td>
            </tr>
            <tr>
              <td></td>
              <td><input type="submit" name="postknapp" value="Posta" /></td>
            </tr>
        </table>
    </form>
<p>
    <a href="logga_ut.php">Logga ut</a>
<?php
session_start();
$username = $_SESSION['username'];

if($_SESSION['login'] == 1) {    //om sessionen är 1 så

    // Connect to the database
    mysql_connect("localhost", "root", "");
    mysql_select_db("guestbookdatabase");

//******************************************************************//
//Display stuff
echo "<h1>Nuvarande Poster</h1>";

if ($_POST['postknapp']) {
    $title = strip_tags($_POST['titel']);
    $message = strip_tags($_POST['inlägg']);
    $UserID = $_POST['UserID'];

    if ($title && $message) {
         //Lägg till i databasen
         mysql_query("INSERT INTO guestbook (Title,Post,Username,UserID) VALUES  ('$title','$message','$username', $UserID)");
         echo "Ditt inlägg har lagts till i gästboken!";
    } else
        echo "Du har inte fyllt i nödvändig information för att kunna göra ett inlägg.";
}

$query = mysql_query("SELECT * FROM guestbook ORDER BY PostID DESC");
$numrows = mysql_num_rows($query);
if ($numrows > 0){

    while ( $row = mysql_fetch_assoc($query) ) {
         $id = $row['PostID'];
         $name = $row['Username'];
         $title = $row['Title'];
         $message = $row['Post'];
         $date = $row['Timestamp'];

         $message = nl2br($message);

         echo "<div> 
         Av <b>$name</b> vid <b>$date</b><br /> 
         <h2>$title</h2> <p>
         $message  <p>
         <div align = 'right'>
         </div></div><hr />"; 
         ?>
         <form action="home.php" method="get">
         <input type='submit' name='Raderaknapp' value='Ta bort inlägget' />
         </form>
         <?php

        if ($_GET['Raderaknapp']) {
            mysql_query("DELETE FROM guestbook WHERE PostID ='".$id."' AND  Username='".$UserID."'");
            echo "Inlägget har tagits bort!";
        }
    }
} else
    echo "Inga inlägg hittades.";

//*****************************************************************//

mysql_close();
?>

<?php

} else { // om session inte är 1 så 
    echo "Du har INTE tillåtelse till gästboken! Klicka på länken för att logga in!";
?>
    <p>
    <br/><a href="index.html">Till login >></a>
<?php   
}

?> 

到gästboken为止!
邮递至Gästboken
滴度:
因拉格:


您的代码字面上说“如果设置了
$\u GET['Raderknapp']
,并且非零(换句话说,是真的),则删除该行”。在
$\u GET['Raderaknapp']
上没有任何条件,也没有任何方法来识别您正试图删除的行。

看起来您在
中错误地执行
删除
,而
循环-因此对于它输出的每个ID,您都会删除它!您可能希望从该循环之外的POST操作中获取ID,如果ID不为零,请运行
删除
。尝试修改您的按钮:
不,它不会解决所有问题-我将建议按钮的检测留给您。一般来说,最好将这里的答案作为前进的提示——期望人们为您编写代码,或者希望这里的人提供代码,这不是一种好的做法。(这里的一些助手太有用了,这可能会对学习产生反作用!)下面是一个调试问题的好方法。在PHP代码的开头(比如在
会话开始()之后)
临时放入:
if($\u POST){echo'。打印($\u POST,true)。“”;退出();}
。这将向您显示已提交的内容,您可以使用该信息帮助您检测用户希望删除的行。不,我想自己删除,但我无法识别代码中遗漏的内容。您能在代码中告诉我如何创建此标识符并能够删除该行吗?