Yeah thanks Tim. 5:30 in the afternoon does bad things to my logical thinking.
Not the best time to try and learn PHP :)

Neil

Tim Ward wrote:

> I'm not sure if this is the problem but it is an important point. print
> "\"$text\""; does not output anything to screen, as with all prints and
> echos it outputs it to html (in this case within a js function definition).
> Try viewing the source produced.
>
> Tim
>
>         ----------
>         From:  Neil Freeman [SMTP:[EMAIL PROTECTED]]
>         Sent:  15 August 2001 18:10
>         To:  Sheridan Saint-Michel
>         Cc:  php-general
>         Subject:  Re: [PHP] Creating a javascript array from database data
>
>         Thanks a lot for your help Sheridan,
>
>         This now appears to work ok :) but if I remove the:
>
>         print "\"$text\"";
>
>         line (as it is not required), I receive errors complaining about a
> syntax
>         error (related to what?) and that 'text' is undefined. As this line
> simply
>         outputs the value to screen why should this cause a problem if it is
> removed?
>         Or could it be some other problem?
>
>         Neil
>
>         PS: Here is my updated code:
>
>         --------------------------
>         <html>
>         <head>
>         <title>Menus test</title>
>
>         </head>
>         <body bgcolor="white">
>
>         <?php
>         $dbhost = 'localhost';
>         $dbuser = 'guest';
>         $dbpass = 'guest';
>         $dbname = 'IFE';
>         $dbtable = 'menus';
>
>         //------ 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)
>         {
>            echo "<Script Language=\"JavaScript\">\n";
>            echo "text = new Array(";
>            while ($i < $number)
>            {
>               $text = mysql_result($result, $i, "name");
>
>            $i++;
>
>            if ($i < $number)
>                 print ",";
>               else
>                 print ")\n";
>           }
>           echo "</Script>\n";
>         }
>
>         mysql_free_result($result);
>         mysql_close();
>         ?>
>
>         </body>
>         </html>
>         --------------------------
>
>         Sheridan Saint-Michel wrote:
>
>         > ***************************************************************
>         >  This message was virus checked with: SAVI 3.48
>         >  last updated 14th August 2001
>         > ***************************************************************
>         >
>         > 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
>
>         --
>         --------------------------------
>          Email:  [EMAIL PROTECTED]
>                  [EMAIL PROTECTED]
>         --------------------------------
>
>

--
--------------------------------
 Email:  [EMAIL PROTECTED]
         [EMAIL PROTECTED]
--------------------------------



-- 
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