tobi_
Goto Top

Tutorial Tabellen sortieren mit PHP

Hallo,
bin gerade auf das Tutorial "Tabellen sortieren mit PHP" gestossen und da ich mir gerade ein kleine filmliste auf php und mysql basis basteln will erschien mir das ganze ideal.
Nach enmtsprechenden anpassungen an meine datenbank zeigt es mir die tabelle wunderbar an, sortieren allerdings funktioniert überhaupt nicht!


Falls ich auf eine Tabelle klicke kommt folgendes:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/intranet/www2/filmliste.php on line 33

Warning: key() [function.key]: Passed variable is not an array or object in /opt/lampp/htdocs/intranet/www2/filmliste.php on line 37

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/intranet/www2/filmliste.php on line 49

Warning: implode() [function.implode]: Bad arguments. in /opt/lampp/htdocs/intranet/www2/filmliste.php on line 46


Mit meinen eigentlich nicht vorhandenen PHP Kenntnissen sagt mir das ganze wenig!
Das ganze läuft aus Suse 10 mit xampp und php5.0.5!

Hier meine php datei:


<?
function direction($dir){
if($dir=="asc"){  
return "desc";  
}else{
return "asc";  
}
}

$conn=mysql_connect("localhost","root","root");  
$db=mysql_select_db("film");  
if($sort){
$dir=direction($dir);
$query="select nr, titel, medienanzahl, bildformat, bildquelle, audio, sprache order by $sort $dir";  
}else{
//$query="select nr, titel, medienanzahl, bildformat, bildquelle, audio, sprache from filmliste"; 
$query="select nr, titel, medienanzahl, bildformat, bildquelle, audio, sprache from filmliste order by nr";  
//z.B. als Standardsortierung
}
$result=mysql_query($query, $conn);
?>

<html>
<head>
<title>Untitled</title>
</head>
<body>
<?
$row=mysql_fetch_array($result, MYSQL_ASSOC);
echo "<table border=\"2\">";  
//Begin des Tabellenkopfes
echo "<tr>";  
while($field=key($row)){
echo "<th><a href=\" filmliste.php?sort=$field&dir=$dir\">$field</a></th>";  
next($row);
}
echo "</tr>";  
//Ende Tabellenkopf
//Da durch die Anweisung $row=mysql_fetch_array($result, MYSQL_ASSOC)); bereits der
//erste Datensatz "geholt" wurde, muß er separat ausgegeben werden  
echo "<td>";  
echo implode("<td>", $row);  
echo "</td>";  
//Dann erfolgen die restlichen Datensätze mit der while-Schleife
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
echo "<tr><td>";  
echo implode("<td>", $row);  
echo "</tr>";  
}
echo "</table>";  
?>
</body>
</html>
Wär echt klasse wenn mir jemand helfen könnte!
Danke auf jeden fall im vorraus!

MfG Tobi

Content-Key: 37358

Url: https://administrator.de/contentid/37358

Printed on: April 25, 2024 at 06:04 o'clock

Member: Biber
Biber Aug 05, 2006 at 17:32:14 (UTC)
Goto Top
Moin Tobi,
Unabhängig von den Spezifika spezieller Programmiersprachen, Compiler oder Linkern gilt als allgemeine Regel immer:
Lies die erste der ausgegebenen Fehlermeldungen, alles andere sind nur Folgefehler.

Wenn Du so an die Sache herangegangen wärest, hättest Du vermutlich bei dieser Meldung

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

..kurz das erste Statement angesehen: ...
$query="select nr, titel, medienanzahl, bildformat, bildquelle, audio, sprache order by $sort $dir";

festgestellt, dass dort überhaupt kein " FROM Tabelle" angegeben ist.
( ob das Sortierfeld "$sort" und ASC/DESC als "$dir" definiert ist, weiß ich nicht. Wäre die nächste Frage.)

Gruß
Biber,
der nicht für 2 Cent PHP kann...
Member: Tobi_
Tobi_ Aug 05, 2006 at 19:07:27 (UTC)
Goto Top
Hallo Biber,
dein tipp war goldwert! es funktioniert!
Glaub mir ich habs desöfteren versucht die erste Fehlermeldung zu analysieren diese simple kleinigkeit ist mir aber nicht aufgefallen....

Vielen Dank nochmal!

MfG Tobi