-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

この場合、message_id の行が本当に存在するかどうかを確認できません。そうでない場合は、問題が発生する可能性があります。クエリが有効であるが結果が返されない場合、Select は false を返しません。以下を使用する必要があります。

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

多分これはあなたの問題を解決するでしょう。

もう 1 つ注意: ヘッダーの前にいくつかのエコーを使用しているようです。ヘッダー関数が後にエラーを引き起こすため、これはすべきではありません。この場合、出力バッファリングを使用するか、ヘッダー関数の使用後にエコーを移動します。

于 2013-02-11T04:06:28.670 に答える
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 を宣言してみましたか?

    <?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 に答える