The thing to ALWAYS remember when working with both PHP and
JavaScript is that PHP is Server-Side and JavaScript is Client-Side.

What this mean is practical terms is that when going from JavaScript
to PHP you have to submit or redirect back to the server... and when
going from PHP to JavaScript (Like you are trying to do here) you
have to make sure your PHP outputs JavaScript.

So instead of printing $text you need to actually print the JavaScript...

So in your case change the middle of your script to something like:

$number = mysql_numrows($result);
 
 $i = 0;
 
 if ($number == 0)
    print "Error - No records found";
else 
{
  echo "<Script Language=\"JavaScript\">\n";
  echo "text = new Array(";
  while ($i < $number)
  {
     $text = mysql_result($result, $i, "name");
     print "\"$text\"";
    $i++;
    if ($i < $number)
      print ",";
    else
      print ")\n";
   }
  echo "</Script>\n";
}

}

Note:  This is my quick *untested* fix done by modifying
your code as little as possible.  I would suggest you use 
mysql_fetch_row and use your loop to parse it rather than
making several calls to mysql_result (especially if you are
ever going to have more than a few entries in the DB).

Sheridan Saint-Michel
Website Administrator
FoxJet, an ITW Company
www.foxjet.com


----- Original Message ----- 
From: Neil Freeman <[EMAIL PROTECTED]>
To: PHP General <[EMAIL PROTECTED]>
Sent: Wednesday, August 15, 2001 11:16 AM
Subject: [PHP] Creating a javascript array from database data


> Hi there,
> 
> Well after a few hours roaming around various websites I am at a loss.
> Here is what I am trying to do:
> 
> 1) Access a MySQL database which contains 1 table
> 2) Read the records from this table
> 3) Store the values returned from this table into javascript array
> elements, ie, if I get the values "dog", "cat" and "cow" back I want
> these stored in an array as such:
> myArray[0] = valueReturned1
> myArray[1] = valueReturned2
> myArray[2] = valueReturned3
> 
> You get the idea.
> 
> Problem being that I cannot work out how to implement the javascript
> section of this. At the moment my php script writes the values returned
> from the database to screen but I require these to be stored in a
> javascript array. Please can someone help me before I go mad :)
> 
> Here is my current .php script:
> 
> ----------------------------------------------
> <html>
> <head>
> <title>Menus test</title>
> </head>
> <body bgcolor="white">
> 
> <?php
> $dbhost = 'localhost';
> $dbuser = 'guest';
> $dbpass = 'guest';
> $dbname = 'IFE';
> $dbtable = 'menus';
> 
> file://------ DATABASE CONNECTION --------//
> mysql_connect($dbhost,$dbuser,$dbpass)
>    or die ("Unable to connect to database");
> 
> mysql_select_db($dbname)
>    or die ("Unable to select database");
> 
> 
> $sql    = "SELECT * FROM $dbtable";
> $result = mysql_query($sql);
> 
> $number = mysql_numrows($result);
> 
> $i = 0;
> 
> if ($number == 0)
>    print "Error - No records found";
> elseif ($number > 0)
> {
>    while ($i < $number)
>    {
>       $text = mysql_result($result, $i, "name");
>       print "$text";
> 
>    $i++;
>    }
> }
> 
> mysql_free_result($result);
> mysql_close();
> ?>
> 
> </body>
> </html>
> ----------------------------------------------
> 
> Thanks, Neil



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to