0

このエラーがあります:

警告: mysql_data_seek() [function.mysql-data-seek]: オフセット 9 は MySQL 結果インデックス 4 に対して無効です (またはクエリ データがバッファリングされていません)

テーブルメッセージがあり、最新のメッセージを表示したいと思います。ユーザー 1 がログインしている場合、これを実行したいと思います。たとえば、ユーザー 1 がユーザー 2 にメッセージを送信し、次にユーザー 2 がユーザー 1 にメッセージを送信した場合、ユーザー 1 に最新のメッセージを表示したいと思います。したがって、それはユーザー 2 によって送信されたものになります。そのため、ユーザー 1 に ID 2 と 3 を表示する必要があります。

 <div class="maincontent">
    <!-- Obtengo datos -->
    <?php 
             $conexion=mysql_connect('localhost','root','root') or die('No');
    $db=mysql_select_db('carpe',$conexion)or die('no existe la base de datos.');

    $id= $_SESSION['id'];

    $multid_array = array();
    $outercnt=0;
 $consulta=mysql_query("select * from messages where id_from='".$id."'
 or id_to='".$id."' order by id asc");
    while($filas=mysql_fetch_array($consulta)){
        $id=$filas['id'];
        $id_to=$filas['id_to'];
        $id_from=$filas['id_from'];
        $status=$filas['status'];
        $text=$filas['text'];
        $time=$filas['time'];
        echo "lo primero: ";

        echo $id;
        echo " ";


        mysql_data_seek($consulta, 0);
        while($filas2=mysql_fetch_array($consulta)){
            $id2=$filas2['id'];
            $id_to2=$filas2['id_to'];
            $id_from2=$filas['id_from'];
            $status2=$filas2['status'];
            $text2=$filas2['text'];
            $time2=$filas2['time'];
            echo "es ";
            echo $id2;
                if($id_from==$id_from2 && $id_to==$id_to2 && $id2>$id){ 
                    $id=$id2;           
                    echo "el mas grande ";
                    echo $id;
                }
        }
         mysql_data_seek($consulta,$outercnt); 
         $outercnt++; 

        //Almaceno en un vector los mensajes a mostrar
        $multid_array[]=$id;



        echo "nuevo elemento  ";
        echo $id;
    }


    //Elimino duplicados
    $resultado = array_unique($multid_array);

    for ($x=0;$x<count($resultado); $x++){
        $id=$resultado[$x];
        $consulta=mysql_query("select * from messages where id='".$id."'");
        echo "arreglo ";
        echo $id;
        echo " ";
        while($filas=mysql_fetch_array($consulta)){
            $id_from=$filas['id_from'];
            $id_to=$filas['id_to'];
            $status=$filas['status'];
            $subject=$filas['subject'];
            $text=$filas['text'];
            $time=$filas['time'];           
        }




    ?>
            <h3><a href="#">Asunto: <?php echo $id?></a></h3>
            <span class="postInfo">Enviado por: <a href="#">De <?php echo
                         $id_from ?></a> A <?php echo $id_to ?> - <?php echo $time ?></span>
            <p><?php echo $text ?></p>
            <a class="more" href="#">Responder</a>
            <hr>
            <?php } ?>
            <hr>
        </div>

最初のエラーは、私がやろうとしているときです: mysql_data_seek($consulta,$outercnt);

$id=$resultado[$x]; を実行すると、別のエラー (2 番目) が発生します。

これは 2 番目のエラーです: Notice: Undefined offset: 1

現在メッセージを表示していますが、これらのエラーがあります。ありがとう!

4

2 に答える 2

0
for ($x=0;$x<count($resultado); $x++){
        $id=$resultado[$x];

存在しない可能性のある $x 要素を取得し、

$id=$resultado[$x]; の直後と直前 、貼り付け:

if (!isset($resultado[$x])){
continue;
}
于 2013-03-08T12:12:30.033 に答える
0

行 9 をフェッチしようとしていますが、行 9 がありません。

取得する前に返される行数を確認しますか?

于 2013-01-02T17:12:13.213 に答える