2013-02-15 148 views
0

是否有一种快速方法来过滤mysql_query结果以获取仅包含特定列的值的列表?PHP:过滤特定列的mysql_query结果?

$query = mysql_query("SELECT * FROM users"); 
$list_of_user_names = get_values($query,"names"); 

用什么名称代替get_values

+1

'SELECT names FROM users'然后获取第一列。 – 2013-02-15 04:43:15

回答

0

使用以下功能。

function get_values($q,$c) 
    { 
     $arr = array(); 
     while($row = mysql_fetch_array($q)) 
     { 
      $arr[] = $row[$c]; 
     } 
     return $arr; // return all names value. 
    } 
+0

不,我的意思是......谢谢你,这确实回答了这个问题,但我正在寻找一个正式的实现(或者可以用在它的地方的东西,比如过滤器函数)。 – MaiaVictor 2013-02-15 04:30:00

+0

@Dokkat你必须迭代mysql结果才能获得结果。 :) – 2013-02-15 04:31:38

0

试试这个:

$query = mysql_query("SELECT names FROM users"); 

if (!$query) { 
    echo "Could not successfully run query from DB: " . mysql_error(); 
    exit; 
} 

if (mysql_num_rows($query) == 0) { 
    echo "No rows found, nothing to print so am exiting"; 
    exit; 
} 

// While a row of data exists, put that row in $row as an associative array 
// Note: If you're expecting just one row, no need to use a loop 
// Note: If you put extract($row); inside the following loop, you'll 
//  then create $names 

while ($row = mysql_fetch_assoc($query)) { 
    echo $row["names"]; 

} 
1

在DATABSE假设你的字段名称是 “名”

$query = mysql_query("SELECT names FROM users"); 

while($row = mysql_fetch_assoc($query)){ 
    echo $row['names']; 
    echo "<br>"; 
} 

注:mysql_ *函数在PHP中的新版本过时,使用mysqli_ *或PDO