0

我有这个错误:

警告:mysql_data_seek() [function.mysql-data-seek]:偏移量 9 对 MySQL 结果索引 4 无效(或查询数据未缓冲)

我有一个表格消息,我想显示最近的消息。如果用户 1 已登录,我想这样做:例如,如果用户 1 向用户 2 发送消息,然后用户 2 向用户 1 发送消息,我想向用户 1 显示最新消息。所以它将是用户 2 发送的那个。所以,我必须向用户 1 显示 ids 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];

这是第二个错误:注意:未定义的偏移量:1

我目前正在显示消息,但我有这些错误。谢谢!

4

2 回答 2

0

您正在尝试获取第 9 行,但没有第 9 行。

在尝试获取它们之前检查返回了多少行?

于 2013-01-02T17:12:13.213 回答
0
for ($x=0;$x<count($resultado); $x++){
        $id=$resultado[$x];

它获取可能不存在的 $x 元素,

在 for 之后和之前 $id=$resultado[$x]; , 粘贴:

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