繁体   English   中英

我在一个循环中的一个循环中有一个PHP错误

[英]I have an error in php in a loop within a loop

我有这个错误:

警告: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];

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

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

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

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

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

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

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

if (!isset($resultado[$x])){
continue;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM