Thomas Luethi: MySQL Abfrage in PHP-Funktion

Beitrag lesen

Hallo,

gibt es irgendeine Regel oder irgend etwas, was verbietet in einer Funktion eine MySQL Abfrage zu machen?

Nein.
Dein Problem ist, dass Du in der Funktion drin
gewisse Variablen verwenden willst, die Du
ausserhalb der Funktion definiert hast.

function site($i)
{
    $connect = mysql_connect($db_host,$db_user,$db_pass);

^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                wo sind die definiert?
Tip: mit der Zeile
global $db_host, $db_user, $db_pass;
ganz am Anfang der Funktion kannst Du diese
Variablen verfuegbar machen.

Zudem hast Du kein vernuenftiges Fehlermanagement.
Bei jedem Schritt solltest Du im Fehlerfall eine
Meldung ausgeben, damit Du sofort weisst, _wo_
etwas schief laeuft.

Statt nur
 $connect = mysql_connect($db_host,$db_user,$db_pass);
solltest Du z.B. schreiben:
 $connect = mysql_connect($db_host,$db_user,$db_pass)
   OR die("Fehler: Konnte nicht mit dem Datenbankserver verbinden.");
u.s.w.

Woher hast Du diesen schlechten Code ohne Fehlermanagement?

Lies unbedingt mal das Manual und nimm dessen Code als Beispiel!
http://www.php.net/manual/de/ref.mysql.php

$site_reason = "SELECT * FROM \_sites WHERE id = '".$i."'";

=> http://www.dclp-faq.de/q/q-sql-select.html

und die Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xxx\functions.php on line 16

... ist vermutlich ein Folgefehler.
Weil die Verbindung nicht hergestellt wurde,
gibt es auch kein Resultat. So einfach ist das. ;-)

Gruesse,

Thomas

--
Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!