获取mysql资源字符串的第一行?

时间:2011-01-06 11:52:30

标签: php mysql database

这是我的问题。 我需要来自数据库的多行,我需要第一行用于某个任务,然后再次遍历所有列表以创建记录集。

$query = "SELECT * FROM mytable";
$result = mysql_query($query);

$firstrow = //extract first row from database
//add display some field from it


while($row = mysql_fetch_assoc($result)) {
   //display all of them
}

现在,如何只提取第一行?

4 个答案:

答案 0 :(得分:13)

使用mysql_fetch_assoc()不仅可以获取行,还可以将结果集的内部指针移动到下一行。要将结果资源重置为第一行,需要使用mysql_data_seek()。

$query = "SELECT * FROM mytable";
$result = mysql_query($query);

$firstrow = mysql_fetch_assoc($result);

// reset the result resource
mysql_data_seek($result, 0);


while($row = mysql_fetch_assoc($result)) {
   //display all of them
}

答案 1 :(得分:1)

如果您想再次获取第一行中的所有行,请尝试以下

$query = "SELECT * FROM mytable";
$result = mysql_query($query);

if ( $row = mysql_fetch_assoc ($result){
    $firstRow = $row;
    mysql_data_seek($result, 0);

    while($row = mysql_fetch_assoc($result)) {
       //display all of them
    }
}

有关mysql_data_seek的更多信息,请访问:PHP: mysql_data_seek - Manual

答案 2 :(得分:0)

每次拨打mysql_fetch_assoc($result)时,都会有一行。因此,不要在循环中重复执行,只需执行一次:

$result = mysql_query("...");
if ($row = mysql_fetch_assoc($result)) {
   $firstRow = $row;

   while ($row = mysql_fetch_assoc($result)) {
       // all the rest
   }
}

免责声明:这可能是更漂亮的代码,但你明白了!

答案 3 :(得分:0)

您可以使用面向对象的样式

$query = "SELECT * FROM mytable";
$result = mysql_query($query);

if ( $row = $result->fetch_assoc()){
    $firstRow = $row;
    mysql_data_seek($result, 0);

    while( $row = $result->fetch_assoc()) {
       //display all of them
    }
}