2011-05-14 187 views
-1
$b = 1; 
$d = mysql_query("select *from 'table_name'"); 
while($b < 10){ 
    while($e = mysql_fetch_array($d)){ 
     echo $e['name_field']; 
    } 
    $b++; 
} 

我想循環輸出,但我卡住了。我嘗試過但仍然沒有任何東西。 這樣的事情:PHP中循環MySQL查詢結果

<?php 
$a = 0; 
$b = 0; 
for($a=0;$a<10;$a++){ 
    for($b=0;$b<10;$b++){ 
     echo $b;   
    } 
} 
+2

爲什麼你有兩個循環? – 2011-05-14 12:30:20

+0

除@ IgnacioVazquez-Abrams問題外,在查詢中'* from'之間添加一個空格。 – ifaour 2011-05-14 12:37:42

+0

並確保你在表名稱周圍使用反引號!否則''table_name''是一個字符串:) – Darkzaelus 2011-05-14 12:39:50

回答

2

你不增加任何地方的$ b。它被設置爲1並且從不增加,所以它總是小於10.

+0

我忘了$ b ++; – repickmukalw 2011-05-14 12:37:30

2

由於表名不應該在單引號中,所以您可以使用反引號。

,如果你想限制結果只顯示10行查詢添加LIMIT這應該是

$d = mysql_query("select * from `table_name` limit 10"); 

刪除外環

while($e = mysql_fetch_array($d)){ 
    echo $e['name_field']; 
} 

編輯

您可能希望在結果顯示10次。只需將查詢放在外部while循環中。

$b = 0; 
while($b < 10) 
{ 
     $d = mysql_query("select * from `table_name`"); 
     while($e = mysql_fetch_array($d)) 
     { 
     echo $e['name_field']; 
     } 
     $b++; 
} 
2
$d = mysql_query("select *from `table_name` LIMIT 10"); // use back-ticks and limit in query 

while($e = mysql_fetch_array($d)){ 
    echo $e['name_field']; 
} 
3

單獨*FROM通過的空間。對錶名稱使用反引號或不使用分隔符而不使用單引號。

如果你想限制你的結果,加LIMIT表達式查詢:

SELECT * FROM `table_name` LIMIT 10 

然後遍歷結果:

while($row = mysql_fetch_array($d)){ 
    echo $row['name_field']; 
} 
0

如果你的意思是你要輸出「 name_field'爲前9行(1 .. < 10),您可以使用:

$d = mysql_query("SELECT * FROM `table_name` LIMIT 9"); 
while ($e = mysql_fetch_array($d)) { 
    echo $e['name_field']; 
} 

但是,如果您要在循環結構中爲所有行輸出「name_field」(1 .. < 10),則只需在循環結尾添加以下兩行:

mysql_data_seek($d, 0); 
    $b++; 

生成的代碼是:

$b = 1; 
$d = mysql_query("SELECT * FROM `table_name` LIMIT 9"); 
while ($b < 10) { 
    while ($e = mysql_fetch_array($d)) { 
     echo $e['name_field']; 
    } 
    mysql_data_seek($d, 0); 
    $b++; 
}