-2

我试图更新我的表('ptb_messages')中的一列('content'),其中消息的'id'与提交时在我的表单中回显的相同,因此 WHERE id='".$message_id。 " 这是一个全局函数集。消息的 id 被很好地回显,问题出在函数或 mysql 脚本中。

有人可以告诉我我哪里出了问题。谢谢

html表单:

   <form id="reply" action="message_reply.php?to=<?php echo "".$message_id.""; ?>" method="post">
    <textarea name="textarea" id="textarea"><?php echo  "{$message['content']}"; ?></textarea>
    <?php
    }
    ?>
    <input type="image" src="assets/img/icons/email_send.png"
         width="50" height="34" name="send_button" id="send_button">
    </form>



mysql function:



 <?php
    require_once("includes/session.php"); 
    require_once("includes/functions.php");
    require('includes/_config/connection.php');
    ?>
    <?php 

    session_start();

    include 'includes/_config/connection.php'; 

    $textarea = $_POST['textarea'];

    $result = mysql_query("SELECT content FROM ptb_messages WHERE id='".$message_id."'");





    if(!$result) 
    { 
    echo "The username you entered does not exist"; 
    } 
    else 
    if($textarea!= mysql_result($result, 0)) 
    { 
    echo ""; 


        $sql=mysql_query("UPDATE ptb_messages SET content ='".addslashes($textarea)."' WHERE id='".$message_id."'"); 
    }
        if($sql) 
        { 


    }
    header("Location: {$_SERVER['HTTP_REFERER']}");
    ?>

我收到这些错误:

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /Applications/XAMPP/xamppfiles/htdocs/ptb1/message_reply.php on line 25

Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/ptb1/message_reply.php:25) in /Applications/XAMPP/xamppfiles/htdocs/ptb1/message_reply.php on line 37
4

3 回答 3

0

改变这个

<form id="reply" action="message_reply.php?to=<?php echo "".$message_id.""; ?>

<form id="reply" action="message_reply.php?to=<?php echo $message_id; ?>

message_id使用此访问

$result = mysql_query("SELECT content FROM ptb_messages WHERE id='".$GET['to']."'");
于 2013-02-11T04:03:56.037 回答
0

在这种情况下,我看不到带有 message_id 的行是否真的存在。如果没有,可能会有问题。如果查询有效但没有返回结果,则 Select 不会返回 false。你应该使用:

if (!$result || !mysql_num_rows($result)) {
    echo 'not exists';
}

也许这会解决你的问题。

还有一点需要注意:我看到您在标题之前使用了一些回声。这不应该是因为 header 函数会导致错误。在这种情况下使用输出缓冲或在使用 header 函数后移动 echo。

于 2013-02-11T04:06:28.670 回答
0

您是否尝试过声明 $message_id?

    <?php 

    session_start();

    include 'includes/_config/connection.php'; 

    $message_id=$_GET['to'];

    $textarea = $_POST['textarea'];

    $query = mysql_query("SELECT content FROM ptb_messages WHERE id='".$message_id."'");

 $results=mysql_fetch_array($query);

 $result=$results['0'];

    if($result && $textarea) {

        $sql = mysql_query("UPDATE ptb_messages SET content ='".addslashes($textarea)."' WHERE id='".$message_id."'"); 
  echo 'done';
  }

  else

    { 
    echo "The username you entered does not exist"; 
    }         

    ?>
于 2013-02-11T05:03:37.593 回答