我刚学PHP,想做一个留言板,实现回复功能,回复内容和留言都是放在同个表中的,回复的内容时就是UPDATE reply的内容<a href="list.php?id2=<?php echo $row[id];?>">回复</a>点击回复时把回复的那条留言的id号传递给id2
表中 id是int类型的
但是update的语句有问题 主要就是WHERE id=$id的问题 请教了<?php
echo $_GET[id2];
if(isset($_POST['submit'])){
    $id=$_GET['id2'];
    echo $id;
  $reply=$_POST[reply];
  //echo $reply;
  //$replytime=data();
  $update= "UPDATE message SET reply='$reply' WHERE id=$id";
    $result=mysql_query($update);
    if($result){
  //echo $_POST[reply];
echo "<script language=javascript>alert('回复成功!');history.go(-1);</script>"; } else {
echo "留言失败:".mysql_error();
}
 }
?><form action="list.php" method='post' name="reform">
回复:</br>
<textarea name="reply"  cols="60" rows="6"></textarea>
  <input type="submit" name="submit" value="确定"/> </form>

解决方案 »

  1.   

    我看到post 然后又看到 get的传递然后又看到 if(isset($_POST['submit'])){
      $id=$_GET['id2'];判断POST的提交
    然后又看到 get 的id然后我的舌头就打结了...
      

  2.   

    应该 是get 不需要了吧, 用post?
    指教。
      

  3.   

    有点乱。
    如果想放在一个表里面,可以粗略的这样定义表CREATE TABLE `message` ( 
     `id` INT(10) NULL AUTO_INCREMENT,  
     `replay` VARCHAR(1000) NULL DEFAULT NULL, 
     `parentid` INT(10) NULL DEFAULT '0', 
     PRIMARY KEY (`id`)
     ) 默认留言parentid=0
    如果是某条留言的回复parentid等于留言的id
    可能用到的操作:增加留言
    INSERT INTO `message` (`replay`, `parentid`) VALUES ('liuyan', 0);
    如果是回复留言,肯定可以得到留言的id,例如1。sql类似为
    INSERT INTO `message` (`replay`, `parentid`) VALUES ('replayliuyan', 1);
    把上边的语句
    $update= "UPDATE message SET reply='$reply' WHERE id=$id";
    替换为
    $update= "INSERT INTO `message` (`replay`, `parentid`) VALUES ('$reply', $id);";。是不是 可以搞定你的问题?。
    胡言乱语中。
      

  4.   


    有了POST之后不能再用GET了么?因为POST是表单提交的,GET是从<a href="list.php?id2=<?php echo $row[id];?>">回复</a>这边得到的id号  所以 我纠结了
      

  5.   


    因为我的留言和回复内容都是放一个表可能有点乱,留言时 reply 的内容为空 , 回复时更新reply 的内容 要得到该留言的id号,所以我纠结了。回复的内容该不该放另一张表呢?
      

  6.   

    不用。就像#4说的那样。加个pid字段。pid=0代表为留言。pid=1,2.3....代表是回复内容。