请问在php中怎么实现读一条记录就把指针移到下一条的效果?类似asp的rs.movenext
代码如下:
<?php
$bigSql = "select * from product_big_class";
mysql_query("set names 'gb2312'");
$result = mysql_query($bigSql);
$bigSqlNum = mysql_num_rows($result);
$halfBigNum = ceil($bigSqlNum/2);
?><div style="float:left;width:250px;padding-left:10px;">
<?php
$rs = mysql_fetch_object($result);
for($i=1;$i<=$halfBigNum;$i++){
?>
<div style="height:25px;"><a href="<?=$rs->big_class_id?>" class="show"><?=$rs->big_class_name?></a></div>
<?php
mysql_data_seek($result,$i);
}
?>
好像不对,现在的结果是读同一条记录$halfBigNum次,请高手指教。

解决方案 »

  1.   

    好像完全是asp的写法= =#php和asp思考方式不一样。楼主想实现什么功能呢?用ADODB的话直接用$rs->movenext();没用的话mysql_fetch_assoc和mysql_fetch_array可以实现类似的功能。前者是取值,后者同时取索引和值。mysql_data_seek()是从数据结果集中取某个数出来。你循环了几次就取几次。而mysql_fetch_object()根据查询结果生成对象(或类变量),与mysql_fetch_assoc和mysql_fetch_array类似,但需注意的是索引不能为数字。
      

  2.   

    <?php
    // 连接,选择数据库
    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
        or die('Could not connect: ' . mysql_error());
    echo 'Connected successfully';
    mysql_select_db('my_database') or die('Could not select database');// 执行 SQL 查询
    $query = 'SELECT * FROM my_table';
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());// 用 HTML 显示结果
    echo "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo "\t<tr>\n";
        foreach ($line as $col_value) {
            echo "\t\t<td>$col_value</td>\n";
        }
        echo "\t</tr>\n";
    }
    echo "</table>\n";// 释放结果集
    mysql_free_result($result);// 关闭连接
    mysql_close($link);
    ?>
      

  3.   

    mysql_fetch_array自动移动指针的,其他的不用你操心,你只判断他返回是否为空就可以了
      

  4.   

    <?php
        mysql_connect("localhost", "mysql_user", "mysql_password") or
            die("Could not connect: " . mysql_error());
        mysql_select_db("mydb");    $result = mysql_query("SELECT id, name FROM mytable");    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
        }    mysql_free_result($result);
    ?>
      

  5.   

    关键我要实现的功能是数据库select所有符合条件的记录,然后只显示这些记录的1/2。所以
      

  6.   

    yueliangdao0608((深圳PHPER.MSN:[email protected])
    你复制的是php手册上的吧,我刚刚正在看呢,不过还是不符合需求。
      

  7.   

    难道php就不能实现这样的功能?要做的东西是类似于http://www.chemnet.com/product/的产品分类显示两列,这样的化不能一个while($rs = mysql_fetch_array($result)){...}搞定一切吧?所以我的想法是先把记录集数除以二,左边显示一半,右边显示一般。请高手指教。
      

  8.   

    显示两列还不简单?为什么要把记录集数除以二,左边显示一半,右边显示一般呢$i=0;
    echo "<table><tr>";
    while($row = mysql_fetch_array($query))
    {
        echo "<td>".$row['field']."</td>";
        echo $i%2==0?"":"</tr><tr>";
    }
    echo "<table>";
      

  9.   

    你可以考虑用mysql_fetch_array生成一个数组,
    然后用循环。