我的问题是这样的,在做一个信息系统的时候,需要一个查询的东西,就做了一个测试一下,选择其中一个分类查询,就是想多查几条数据出来,后来发现在数据表中本来有5条数据的,可是查询总是4条数据,而且是第一条数据记录没有,我的代码如下:
<?php
$cid = $_POST['cid'];
$sql = "select * from classify where cid='$cid'";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
while($row=mysql_fetch_array($query)){
echo "<table><tr><td>".$row['title']."</td></tr></table>";
}
?>
这样写的时候,会查询出一些记录,可是第一条是没有的,百思不得其解,后来在百度上找到了答案,方法如下:
<?php $cid = $_POST['cid']; $sql = "select * from classify where cid='$cid'"; $query = mysql_query($sql); //$row = mysql_fetch_array($query); while($row=mysql_fetch_array($query)){ echo "<table><tr><td>".$row['title']."</td></tr></table>"; } ?>
这样就行了,因为上面注释掉的那行已经把第一行给取出来了,说到底还是php的基本功力不行。
网友经典补充:
mysql_fetch_array()函数,作用是从mysql数据源中取得一行作为关联数组、数字数组或者两者兼有,要注意的是,这个函数每运行一次,数据库指针会往下移动一行
你第一次就已经下移一行了,那你下面的循环,当然的从第二行还是,那当然不会返回第一行
其实,你那条(刚才被注释的那条)写在哪里都是画蛇添足,毫无意义的代码!