Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Fehler im PHP Script??
Frage
Hallo zusammen, ihr könnt mir sicher helfen. Ich suche schon wie verzweifelt einen fehler. Ich habe einen online-shop. ich möchte auf der site www.marcnet.ch/katalog.php ein listenfeld füllen mit daten aus einer datenbank.
was ist hier falsch??
Listing von db_verbindung.php:
<?php
//Datenbank
$benutzer = "marcnetc_admin";
$kennwort = "";
$host = "localhost";
$db = "marcnetc_floraparadies";
// Verbindung erstellen
$verbindung = mysql_connect($host);
if (! $verbindung)
die("Verbindung gescheitert");
mysql_select_db($db);
?>
Listing von katalog.php:
<?php
include("db_verbindung.php");
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ");
while ($treffer = mysql_fetch_row($liste))
{
foreach ($treffer as $feld)
if ($feld !="")
echo "<option name=familie value=$feld> $feld</option>";
}
?>
Antwort 1 von Nessus
Wenn Du jetzt noch die Fehlermeldung postest, bekommst Du etwas eher geholfen...
Nessus
Nessus
Antwort 2 von Marc Sameli
Leider kommt keine Fehlermeldung. Das Listenfeld bleibt einfach leer. Siehe www.marcnet.ch/katalog.php
Antwort 3 von thomasn1975
Mach mal aus
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ");
zu
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ") or die mysql_error();
und guck, ob's da einen Fehler gibt.
Schüssi!
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ");
zu
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ") or die mysql_error();
und guck, ob's da einen Fehler gibt.
Schüssi!
Antwort 4 von Nessus
Hi
So sollte es besser gehen...
HTH
Nessus
include("db_verbindung.php");
$query = "SELECT familie FROM produkte GROUP BY familie";
$result = @mysql_query($query);
$i = 0;
while($row = mysql_fetch_array($result))
{
$feld = $row['familie'];
echo "<option name=familie value=$feld>$feld</option>";
++$i;
}
So sollte es besser gehen...
HTH
Nessus
Antwort 5 von Marc Sameli
Klappt leider auch nicht. Komisch, komisch. Kann es noch ein berechtigungsproblem sein?
Antwort 6 von Nessus
Hi,
ist auch nichts im Quellcode zu sehen?
Es kann sein, das bei groben Fehlern im HTML da gar nichts sieht.
Nessus
ist auch nichts im Quellcode zu sehen?
Es kann sein, das bei groben Fehlern im HTML da gar nichts sieht.
Nessus
Antwort 7 von thomasn1975
Guck mal, was da im HTML-Quelltext der generierten Seite steht:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/marcnetc/public_html/katalog.php on line 124
Hast du denn schon das mit dem "or die..." versucht?
Schüssi!
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/marcnetc/public_html/katalog.php on line 124
Hast du denn schon das mit dem "or die..." versucht?
Schüssi!
Antwort 8 von Marc Sameli
Ich habe mal alles rausgenommen und nur noch folgenden Text drin gelassen:
<HTML>
<HEAD>
<TITLE>Flora Paradies - Ihr Online-Blumenhändler</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<?php
include("db_verbindung.php");
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ");
while ($treffer = mysql_fetch_row($liste))
{
foreach ($treffer as $feld)
if ($feld !="")
echo "<option name=familie value=$feld> $feld</option>";
}
?>
</select>
</p>
</td>
<td>
<input type="submit" name="Abschicken" value="Finden">
</td>
</tr>
</table>
</form>
</td>
<td valign=middle class=starttext >
<form name=suche2 method=post action=katalog_auswahl.php>
<table width=100% border=0 cellspacing=2 cellpadding=2>
<tr>
<td class=text1>Stichwort</td>
<td> </td>
</tr>
<tr>
<td>
<input type=text name=stichwort maxlength=50 size=30>
</td>
<td>
<input type=submit name=Abschicken value=Finden>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
</BODY>
</HTML>
Es kommt folgender Fehler:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/marcnetc/public_html/katalog.php on line 8
<HTML>
<HEAD>
<TITLE>Flora Paradies - Ihr Online-Blumenhändler</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<?php
include("db_verbindung.php");
$liste = mysql_query("SELECT familie FROM produkte GROUP BY familie ");
while ($treffer = mysql_fetch_row($liste))
{
foreach ($treffer as $feld)
if ($feld !="")
echo "<option name=familie value=$feld> $feld</option>";
}
?>
</select>
</p>
</td>
<td>
<input type="submit" name="Abschicken" value="Finden">
</td>
</tr>
</table>
</form>
</td>
<td valign=middle class=starttext >
<form name=suche2 method=post action=katalog_auswahl.php>
<table width=100% border=0 cellspacing=2 cellpadding=2>
<tr>
<td class=text1>Stichwort</td>
<td> </td>
</tr>
<tr>
<td>
<input type=text name=stichwort maxlength=50 size=30>
</td>
<td>
<input type=submit name=Abschicken value=Finden>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
</BODY>
</HTML>
Es kommt folgender Fehler:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/marcnetc/public_html/katalog.php on line 8
Antwort 9 von thomasn1975
Mach doch mal bitte, was ich dir sage.
Da schlägt mysql_query() fehl. Jetzt muss man nur noch rausfínden, warum.
Schüssi!
Da schlägt mysql_query() fehl. Jetzt muss man nur noch rausfínden, warum.
Schüssi!
Antwort 10 von Nessus
Hi,
und wenn Du das so machen würdest wie ich Dir das schon vorgeschlagen habe, die Spaltennamen auch korrekt sind, versteh ich das Problem nicht...
Nessus
und wenn Du das so machen würdest wie ich Dir das schon vorgeschlagen habe, die Spaltennamen auch korrekt sind, versteh ich das Problem nicht...
Nessus
Antwort 11 von MixMax
mache mal eine zeile for die whileschleife:
echo mysql_error()."<br>\r\n";
Antwort 12 von thomasn1975
MixMax: Das bringt nichts, da die while()-Schleife garnicht durchlaufen wird.
Schüssi!
Schüssi!
Antwort 13 von Marc Sameli
Ich habe jetzt mal "or die" eingefügt. Es kommt folgende Meldung:
No Database Selected
No Database Selected
Antwort 14 von thomasn1975
Tja, dann hast du wahrscheinlich den Datenbanknamen in db_verbindung.php falsch geschrieben.
Schüssi!
Schüssi!
Antwort 15 von thomasn1975
Andererseits ist es auh möglich, dass die MySQL-Verbindung am Ende von db_verbindung.php wieder geschlossen wird und mysql_query() in katalog.php eine neue Verbindung aufbaut, in der dann natürlich noch keine Datenbank ausgewählt ist.
Schreib doch einfach
mysql_query("SELECT familie FROM marcnetc_floraparadies.produkte GROUP BY familie ");
Schüssi!
Schreib doch einfach
mysql_query("SELECT familie FROM marcnetc_floraparadies.produkte GROUP BY familie ");
Schüssi!

