2012-02-02 46 views
2

我想知道是否有人可以提供幫助 - 我想選擇一個表並使用返回值創建Javascript數組。這是我到目前爲止有:從Mysql生成Javascript數組select

con = mysql_connect("localhost","usrname","password"); 

if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("my_db", $con); 
$ql = "SELECT theMessage FROM email_message"; 
$result = mysql_query($ql) or die(mysql_error()); 

while ($row = mysql_fetch_array($result)) { 
    $allMessage = $row['theMessage'] . " "; 
} 

$arr = array($allMessages); 
$script = '<script>var newArr = new Array(' . implode(' ', $arr) . ');</script>'; 
echo $script; 

但是,相反,它只是表明我空數組是這樣的:var newArr =新的Array();

回答

3

更改線路

$allMessage = $row['theMessage'] . " "; 

$allMessages[] = $row['theMessage'] . " "; 

(添加爲變量名,並添加[]) 因爲你每次讀取新線時間覆蓋你的結果,然後從不同的(空的)變量中讀取!

現在你應該把數組與內部空間分開,你應該用「,」或者用「','」來分解它,這取決於存儲的數據。

你也可以把輸出直接放到fetch-loop中,但這只是你的一個想法。

你真的應該考慮的就是閱讀json_encode()和json_decode()什麼:

http://www.php.net/manual/en/function.json-encode.php

http://www.php.net/manual/en/function.json-decode.php

希望我能幫助。

0

你有沒有考慮過使用json_encode()?

我會使用一個mysql_fetch_assoc,然後在我的'while'循環中,將每個項目推送到一個php數組中,然後使用內置的json_encode函數創建一個您可以輕鬆使用的javascript對象。

編輯:請勿使用mysql_功能。在PDO和MySQLi中有類似的功能來實現相同的目標。使用這些。