OlliK: JAVASCRIPT & MySQL

Beitrag lesen

Hallo Matti,

Respekt - das ist ja schon hohe Schule.
Vielen Dank für eure eure Antworten.

MfG OlliK.

Hi,

$link = connect();

if ($link)
{
  $sql = "SELECT *
          FROM banner"; // Sinnvollerweise sollte man hier natürlich nur die Spalten abfragen, die man wirklich braucht!

$result = mysql_query($sql) or die(mysql_error()); // Hier sollte eigentlich eine vernünftige Fehlerbehandlung hin - ein die() ist keine!

if (!$result)
    return(FALSE);

echo "ImageArr = new Array();\n";

while ($row = mysql_fetch_assoc($result))
  {
    echo "ImageArr.push('" . $row['Image'] . "');\n";
  }
}


> >   
> > Der dabei erzeugte Javascript-Code muss natürlich an der richtigen Stelle ins HTML-Dokument geschrieben werden.  
>   
> Ich hätte noch einen weitergehenden Vorschlag. Statt die Elemente einzeln ImageArr hinzuzufügen (btw: besser als lokale Variable, d.h. mit "var", initialisieren), würde ich den Array nicht einzeln über die push-Methode füllen, sondern einfach JSON erzeugen. Beispiel:  
>   
> ~~~php
  

> $link = connect();  
>   
> if ($link)  
> {  
>   $sql = "SELECT *  
>           FROM banner"; // Sinnvollerweise sollte man hier natürlich nur die Spalten abfragen, die man wirklich braucht!  
>   
>   $result = mysql_query($sql) or die(mysql_error()); // Hier sollte eigentlich eine vernünftige Fehlerbehandlung hin - ein die() ist keine!  
>   
>   if (!$result)  
>     return(FALSE);  
>   
>   echo "var ImageArr = [";  
>   $first = 1;  
>   while ($row = mysql_fetch_assoc($result))  
>   {  
>     // output comma for all items after first  
>     if ($first-- <= 0)  
>       echo ",";  
>     echo [link:http://www.php.net/manual/en/function.json-encode.php@title=json_encode]($row);  
>   }  
> }  
>   
>   echo ']';  
> 

Abgesehen von meinem ästhetischem Empfinden (das generierte JS ist IMHO schöner und kompakter) hat es den Vorteil, dass man diesen Teil (ab dem generierten [ bis zum ]) auch mal herauslösen und als Webservice anbieten könnte (z.B. über AJAX, um ein einfaches Beispiel zu nennen).

Bis die Tage,
Matti