使用mysql_fetch_assoc时测试第一行

时间:2014-06-12 11:20:53

标签: php

我有以下查询

<?php
  $query = "SELECT * FROM mytable";
  $result = mysql_query($query);
?>



<?php while ($row = mysql_fetch_assoc($result)) { ?>


if first row, add  id = "thumb1"

<a id="thumb1" href='address' onclick="...">
<img src='<?php echo 'Index_Images/image_thumb_' . $row['IMG_IDENTIFIER'] . '.jpg'; ?>' />
</a>   


<?php else ?>

<a id="others" href='address' onclick="...">
<img src='<?php echo 'Index_Images/image_thumb_' . $row['IMG_IDENTIFIER'] . '.jpg'; ?>' />
</a>  

<?php
}
?>

我想知道如何测试mysql_fetch_assoc中的第一行,如果可能的话。

谢谢。

3 个答案:

答案 0 :(得分:3)

使用变量$i,它在每个循环中递增。

$i = 0;

while ($row = mysql_fetch_assoc($result)) {
    if ($i == 0) {
        echo 'first row';
    }

    echo ...;

    $i++;
}

答案 1 :(得分:2)

尝试:

// ...
$first = true;
while ($row = mysql_fetch_assoc($result)) {
   if ($first) {
     // code with thumb1
   } else {
     // code with others
   }
   $first = false;
} 
// ...

另外我会考虑使用PDO或mysqli或某些ORM而不是mysql。

如果你以后将params放入查询记住转义 - 不是esacping是在php中使用mysql进行sql注入漏洞的最常见方法之一。

答案 2 :(得分:1)

<?php
  $query = "SELECT * FROM mytable";
  $result = mysql_query($query);
  $i = 1;
?>



<?php while ($row = mysql_fetch_assoc($result)) { ?>

<?php if($i == 1) {
if first row, add  id = "thumb1"

<a id="thumb1" href='address' onclick="...">
<img src='<?php echo 'Index_Images/image_thumb_' . $row['IMG_IDENTIFIER'] . '.jpg'; ?>' />
</a>   


<?php }else{ ?>

<a id="others" href='address' onclick="...">
<img src='<?php echo 'Index_Images/image_thumb_' . $row['IMG_IDENTIFIER'] . '.jpg'; ?>' />
</a>  

<?php
}
$i++;
}
?>

检查一下,如果有效。