Problem mit MySQL und PHP

T

tux.ICBlood

Guest
Ich habe in disen PHP Script einen komischen Fehler.
CODE <?php
function list_film($order) {
include('config.php');
include('log_writer.php');
$verbindung="mysql_connect($mysql_server,$mysql_name,$mysql_passwort)";
if (!$verbindung) {
$ausgabe['inhalt']="<div id=\"fullpage\"><h1 style=\"background-color: #864bb0;\">Fehler: Verbindung zur Datenbank fehlgeschlagen</h1><p>Es ist ein Fehler bei der Verbindung zur Datenbank aufgetreten. Vielleicht ist der Server überlastet, oder kurzeitig ausser Betrieb.<br />Versuchen Sie es doch später noch mal.</p></div>";
$ausgabe['titel']="Fehler";
$ausgabe['meta_text']="";
log_writer("Verbindung zur Datenbank fehlgschlagen");
return $ausgabe;
} else {
$selectdb="mysql_select_db($mysql_datenbank)";
if (!$selectdb) {
$ausgabe['inhalt']="<div id=\"fullpage\"><h1 style=\"background-color: #864bb0;\">Fehler: Auswahl der Datenbank fehlgeschlagen</h1><p>Der Server hat die Datenbank mit den gewünschten Informationen nicht gefunden.<br />Dieser Fehler sollte eigentlich nicht erscheinen. Es kann aber sein, dass gerade ein Umbau im System stattfindet.<br />Versuchen Sie es doch später noch einmal.</p></div>";
$ausgabe['titel']="Fehler";
$ausgabe['meta_text']="";
log_writer("Auswahl der Datenbank fehlgeschlagen");
return $ausgabe;
} else {
if (($order=="")||(($order!="titel")||($order!="jahr"))) {
$order="titel";
}
if ($order=="jahr") {
$sql="SELECT id,titel,jahr FROM filme ORDER BY jahr ASC";
}
if ($order=="titel") {
$sql="SELECT id,titel,jahr FROM filme ORDER BY titel ASC";
}
$sql="SELECT id,titel,jahr FROM filme ORDER BY titel ASC";
$ergebniss=mysql_query($sql);
if (!$ergebniss) {
log_writer("SQL Abfrage war fehlerhaft");
$ausgabe['inhalt']="<div id=\"fullpage\"><h1 style=\"background-color: #864bb0;\">Fehler: Anfrage an die Datenbank war Fehlerhaft</h1><p>Die SQL-Abfrage an die Datenbank war fehlerhaft. Hier handelt es sich eindeutig um einen Programmierfehler.<br />Versuchen Sie es doch später noch einmal.</p></div>";
$ausgabe['titel']="Fehler";
$ausgabe['meta_text']="";
return $ausgabe;
} else {
if (mysql_num_rows($ergebniss) == 0) {
$ausgabe['inhalt']="<div id=\"fullpage\"><h1 style=\"background-color: #864bb0;\">Fehler: Keine Filme vorhanden</h1><p>Bisher sind leider noch keine Filme verfügbar.<br />Versuchen Sie es doch später noch einmal.</p></div>";
$ausgabe['titel']="Fehler";
$ausgabe['meta_text']="";
log_writer("Keine Filme vorhanden");
return $ausgabe;
} else {
while ($allefilme = mysql_fetch_array($ergebniss)) {
$jahr=$allefilme['jahr'];
$titel=$allefilme['titel'];
$link=str_replace(" ","_",$titel);
$inhalt.="<a href=\"/filme/$link\">$titel</a> - $jahr";
}
$ausgabe['inhalt']="<div id=\"fullpage\"><h1 style=\"background-color: #864bb0;\">Filme</h1><p>$inhalt</p></div>";
$ausgabe['titel']="Liste der Filme";
$ausgabe['meta_text']="Bla";
return $ausgabe;
}
}
}
}
}
?>

mysql_query() schlägt fehl, ich weis aber nicht warum.
Wenn ich SELECT id,titel,jahr FROM filme ORDER BY titel ASC direckt an die MySQL Datenbank sende bekomme ich ein Ergebniss.
Was ist das falsch?
Das orginal script zumindest die eingabaute funktion gibt es hier: www.filme-aus-deutschland.de/filme
 
Hi,

Du musst bei der MySQL-Abfrage ein Handle auf die Datenbankverbindung angeben. Kein Wunder schlägt die Verbindung so fehl:

QUOTE $ergebniss=mysql_query($sql);


Richtig wäre in deinem Fall:


QUOTE $ergebniss=mysql_query($sql, $verbindung);


Greats,

Stefan B.
 
Lieber Daniel ;-)

CODE $verbindung="mysql_connect($mysql_server,$mysql_name,$mysql_passwort)";


speichert den String (Zeichenkette) "mysql_connect(...)" in der Variabel $verbindung. Du möchtest die Funktion mysql_connect() ausführen, was ohne " geschieht.

Um das mit der Verbindungskennung ist optitional. Im Manual http://www.php.net/manual/de/ kannst Du oben rechts eine Funktion (z.B. mysql_query) eingeben und dort hast Du immer ein paar Beispiele, wo Du dann abgucken kannst.
 
Zurück
Oben