2012-02-04 49 views
2

我選擇我的產品在MySQL的產品表的名字,然後我想這些名字提交給像
$names = array(name1, name2, ...)
凡姓名1,...是產品從名字MySQL的。我經歷了類似的案例,但似乎沒有解決我的問題。我是一個新手,只是想學習。轉換的MySQL結果到字符串數組

回答

5
$result = mysql_query("SELECT name FROM products"); 
$names=array(); 
while ($row = mysql_fetch_row($result)) $names[]=$row[0]; 
mysql_free_result($result); 

您需要循環,因爲沒有辦法直接獲取完整結果集的所有行。

+0

謝謝!正是我想要的 – Mona 2013-05-12 06:10:12

+0

幫了我很多!謝謝。 – dnns 2014-04-02 18:41:44

-1
$result = mysql_query(" 

SELECT `productname` FROM `products` 

")or die($result."<br/><br/>".mysql_error()); 

    $numrows = mysql_num_rows($result); 

    while ($row = mysql_fetch_assoc($result)) 
    { 

    $productname[$i] = $row['productname']; 

      // to print out use the following 
      echo $productname[$i]; 
      $i++; 

    } 
-1

那麼從學術角度,我想有一個在做這樣的事情

$names = explode('<|>', mysql_result(mysql_query(
    "SELECT GROUP_CONCAT(name separator '<|>') FROM products GROUP BY 'name'" 
), 0)); 

所有單行循環和數組的功率,對於低一個「可行的」替代,低廉的價格讓耶穌哭泣。是的,你應該大概使用循環。除非你有一種恐懼症,因爲當你小時候,在你的學校外等待着你,並且打敗你,我想。

+0

從學術的角度來看,必須創建一個*函數*。但似乎沒有PHP用戶(至少在這個網站上)曾聽說過這樣的功能。 – 2012-02-04 17:46:36

+0

僅當您打算重新使用代碼時。否則函數本身會導致代碼膨脹。 – Naltharial 2012-02-04 17:59:33

+0

..其他線索將是沒有意義的。 (請注意*這是最可重用的情況) – 2012-02-04 18:06:14

-1

說不上爲什麼everione貼到一個班輪但無論如何,它總是好主意,使你的代碼少臃腫

在一些配置文件創建一個功能

function dbGgetCol($sql) { 
    $ret = array(); 
    $res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql); 
    if ($res) { 
     while ($row = mysql_fetch_row($result)) { 
     $ret[] = $row[0]; 
     } 
     mysql_free_result($res); 
    } 
    return $ret; 
    } 

地方它納入每個腳本
然後用這個簡單的代碼得到你的陣列

$names = dbGetCol("SELECT name FROM products");