2011-12-11 46 views
0

我有這樣的SQL代碼:如何回顯全mysql_fetch_array

$sql="SELECT * FROM functions 
     WHERE user_name='ben ' 
     AND (function_description LIKE '%xxx%') "; 

它給我回phpMyAdmin的SQL兩行:

user_name function_type function_name function_description 
ben   PHP   PHP1   that xxx 
ben   PHP   PHP2   lofaif adnan xxx i 

但是當我試圖用回顯那些行這樣的:

$results=mysql_query($sql,$connection); 
while($row=mysql_fetch_array($results, MYSQL_ASSOC)) 
{ 
    echo $row['function_name'] . " : " . $row['function_description'] . "<br/><br/>"; 
} 

它給我回來只是這樣的:

PHP2:lofaif adnan xxx i 

我想回顯2行..最新的問題呢?

回答

2

您目前所在的while循環只會打印出當前的迭代。要打印出DB中的所有行,只需將$rows變量初始化爲數組$rows = array();,並通過while($rows[]=mysql_fetch_array($results, MYSQL_ASSOC))將所有行分配給它。您的$rows變量現在應包含所有數據庫記錄。

$results=mysql_query($sql,$connection); 
$row = array(); 
while($rows[]=mysql_fetch_array($results)); 

//should not contain all rows 
print_r($rows); 
0

您可以使用PDO使用fetchAll()返回結果集的所有功能於一身的數組:

try { 
    $db = new PDO($dns, $user, $pass) 
} catch (PDOException $e) { 
    exit($e->getMessage()) 
} 

$stmt = $db->prepare($sql); 
$stmt->execute(); 

$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 

var_dump($result); 
+0

http://www.php.net/manual/en/pdostatement.fetchall .php –

+0

請注意,PDO需要額外的擴展,但無法使用。我對嗎? –

+0

嗨。我想,但是現在PDO已經可以在PHP中使用幾個版本。我假設它是可用的。而且,它是推薦使用的數據庫接口,因爲它提供了許多有用的功能和額外的安全性,如準備好的語句等。 –