Reputation: 4740
I wonder if anyone can help - I want to select a table and create Javascript a array with the return values. Here's what I have so far:
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;
But instead, it just shows me empty array like this: var newArr = new Array();
Upvotes: 2
Views: 1275
Reputation: 2784
have you considered using json_encode()?
I would use a mysql_fetch_assoc, then in my 'while' loop, push each item into a php array, then use the built in json_encode function to create a javascript object which you can easily use.
EDIT: Do NOT use mysql_
functions. There are similar functions in PDO and MySQLi to achieve the same goal. Use those.
Upvotes: 0
Reputation: 1969
Change the line
$allMessage = $row['theMessage'] . " ";
to
$allMessages[] = $row['theMessage'] . " ";
(adding a s to the variable name, and adding the []) because you are overwriting your result every time you read a new line, and afterwards read from a different (empty) variable!
Now you should implode the array not with spaces, you should implode it with ", " or with "', '", depending on what data is stored.
You could also put the output directly into the fetch-loop, but thats just an idea for you.
What you really should consider about is reading the json_encode() and json_decode():
http://www.php.net/manual/en/function.json-encode.php
http://www.php.net/manual/en/function.json-decode.php
Hope i could help.
Upvotes: 3