我有这个错误:
警告: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
我目前正在显示消息,但我有这些错误。谢谢!
答案 0 :(得分:0)
您正在尝试获取第9行,但没有第9行。
在尝试获取行之前检查返回了多少行?
答案 1 :(得分:0)
for ($x=0;$x<count($resultado); $x++){
$id=$resultado[$x];
它获取$ x元素,该元素可能不存在,
在$ id = $ resultado [$ x]之前和之后; ,粘贴:
if (!isset($resultado[$x])){
continue;
}