2011-08-30 62 views
0

我使用mysql_query从我的数据库获取多个结果。我需要做的是结果编号echo,以及结果本身。换句话说,如果我的查询获取3个结果,我想第一个结果在它旁边有一个1,第二个结果为2等等。 我需要的数字从1开始,不是0PHP:回声结果编号

注:我的意思不是mysql_num_rows作为唯一告诉我多少结果,没有结果的数字本身。

这里是我的查询的信息:

$primary_img_query = "SELECT imgURL, imgTitle FROM primary_images WHERE primaryId=16"; 
$primary_img_data = mysql_query($primary_img_query) or die('MySql Error' . mysql_error()); 

while($row = mysql_fetch_assoc($primary_img_data)) { 
    echo "<img src='new_arrivals_img/thumbnails/".$row['imgURL']."'>";//this is where I want the result number echoed 
    } 

回答

4

做出反击:

$count = 1; 

while(...){ 
    echo $count++; 
} 

你的情况:

$count = 1; 

while($row = mysql_fetch_assoc($primary_img_data)) { 
    echo $count++; 
    echo "<img src='new_arrivals_img/thumbnails/".$row['imgURL']."'>"; 
} 
+0

谢谢!看起来这样可行,但直到后期我才能测试它。如果我有任何问题,我会通知你。 – stefmikhail

3

只是做:

$counter = 1; 
while($row = mysql_fetch_assoc($primary_img_data)) { 
    echo "<img src='new_arrivals_img/thumbnails/".$row['imgURL']."'>";//this is where I want the result number echoed 
    echo $counter++; 
    } 
2
$i = 1; 
while($row = mysql_fetch_assoc($primary_img_data)) { 
    echo "<img src='new_arrivals_img/thumbnails/".$row['imgURL']."'>" . $i; 
    $i ++; 
} 
+0

jinx ........... – dqhendricks

+0

圣洁** ..有什么几率; D – Rijk

2
$i = 1; 
while($row = mysql_fetch_assoc($primary_img_data)) { 
     echo "<img src='new_arrivals_img/thumbnails/".$row['imgURL']."'>" . $i;//this is where I want the result number echoed 
     $i++; 
} 
+1

为什么重复?只要做'echo $ i ++' – Neal

+0

肯定。为什么不... – dqhendricks

2

稍微有点粗野,但为什么不只是保留一个计数器?

$primary_img_query = "SELECT imgURL, imgTitle FROM primary_images WHERE primaryId=16"; 
$primary_img_data = mysql_query($primary_img_query) or die('MySql Error' . mysql_error()); 
$n=0; 

while($row = mysql_fetch_assoc($primary_img_data)) { 
    $n++; 
    echo "<img src='new_arrivals_img/thumbnails/".$row['imgURL']."'>" . $n; 
} 
4

另外一个解决方案,我没有看到这里提到的是使用有序列表:

$result = mysql_query(...); 

echo "<ol>\n"; 
while ($row = mysql_fetch_array($result)) 
{ 
    echo "<li><img src='new_arrivals_img/thumbnails/".$row['imgURL']."'></li>"; 
} 
echo "</ol>\n"; 

这给你更“正确”的HTML,如果你不特别在意结果数在你的PHP代码中。 (没有什么能阻止你同时使用两者,或者:使用有序列表输出数字,但为其他事物保留一个计数器,如rel属性或交替CSS类。)

+0

唉这不会工作,因为我实际上需要使用图像的类中的数字。 Ie class ='image(x)'其中x是结果编号。我应该提到这一点。 – stefmikhail

+0

是的。但就像我说的,如果你需要的话,没有什么能阻止你使用它们。只是想把想法抛出去。 –

1

内联计数器,用于获胜。

$i = 0; 
while($row = mysql_fetch_assoc($primary_img_data)) 
{ 
    echo ++$i . "<img src='new_arrivals_img/thumbnails/" . $row['imgURL'] . "'><br>"; 
} 

这并不比这里的任何其他答案重大差异,除了它的1号线短,实际利用的事实,你可以使用内嵌incrementors。