PHP检查MySQL最后一行

Sai*_*son 15 php mysql

我有一个关于PHP的简单问题来检查这是否是MySQL的最后一行.例如,我有这个代码:

$result = mysql_query("SELECT *SOMETHING* ");

while($row = mysql_fetch_array($result))
{
if (*this is the last row*)
{/* Do Something Here*/}
else
{/* Do Another Thing Here*/}
}
Run Code Online (Sandbox Code Playgroud)

我很难检查该行是否是最后一行.知道怎么做吗?谢谢.

new*_*rey 41

您可以mysql_num_rows()while循环之前使用,然后将该值用于您的条件:

$numResults = mysql_num_rows($result);
$counter = 0
while ($row = mysql_fetch_array($result)) {
    if (++$counter == $numResults) {
        // last row
    } else {
        // not last row
    }
}
Run Code Online (Sandbox Code Playgroud)


Mih*_*rga 11

$result = mysql_query("SELECT *SOMETHING* ");

$i = 1;
$allRows = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){

    if ($allRows == $i) {
        /* Do Something Here*/
    } else {
        /* Do Another Thing Here*/}
    }
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

但请考虑PDO

$db = new PDO('mysql:host=localhost;dbname=testdb', 'username', 'password');
$stmt = $db->query("SELECT * FROM table");
$allRows = $stmt->rowCount();
$i = 1;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

    if ($allRows == $i) {
        /* Do Something Here*/
    } else {
        /* Do Another Thing Here*/}
    }
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

  • +1提及PDO,并实际发布PDO解决方案 (2认同)