Hallo zusammen
Ich bin neu hier (und auch relativ unerfahren, was PHP und MySQL) anbetrifft.
In den letzten zwei Tagen (bzw. Nächten) habe ich versucht, eine Funktion zu "basteln", mit welcher man eine gegebene Tabelle mit Klick auf den Tabellenkopf auf- oder absteigend sortieren kann. Das soll bei jeder Spalte möglich sein.
Im Moment habe ich es ganz unelegant so gelöst, indem ich die ganze Seite 8x dupliziert und dann auf jeder Seite die Sortierung geändert habe. Ziemlich umständlich und mühsam. Das Ergebnis seht ihr hier.
Das geht bestimmt professioneller und eleganter! Nur wie?
Folgenden Code habe ich mal gebastelt (bzw. "ergoogelt):
====Code====
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include ("dbconnect.php");
?>
</head>
<body>
<?php
function direction($dir)
{
if($sort)
?>
<p></p>
<table width="700" border="0" bordercolor="#FFFFCC" >
<tr>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong> <?php echo "<a href= 'test3.php?sort=$dir\'>Nachname</a>" ?></strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Vorname</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Motorrad</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Anz. Pers.</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Zimmer</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Anreise</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Abreise</strong></td>
</tr>
<?php
while ($result = mysql_fetch_array($ergebnis)){
?>
<tr>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f1']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f0']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f9']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f11']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f13']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f15']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f16']?></td>
</tr>
<?php
}
?>
</table>
<?php mysql_close($connection);?>
<p> </p>
</body>
</html>
====Code Ende====
Ich habe hier alles Überflüssige weggelassen und nur den Code für die Tabelle aufgeführt.
Fragt bitte nicht, weshalb die Felder keine selbsterklärende Namen haben, sondern f0, f1, f2 etc. heissen. Ist so, und ich kann's leider nicht ändern.
Ich habe das ganze mal "test3.php" benannt, und wie ihr hier seht, funktioniert der Code auch ohne Fehlermeldung - aber die Sortierung wird eben auch nicht gemacht.
Ich bin für jede Hilfe dankbar!
Gruss, vtx-rider
Ich bin neu hier (und auch relativ unerfahren, was PHP und MySQL) anbetrifft.
In den letzten zwei Tagen (bzw. Nächten) habe ich versucht, eine Funktion zu "basteln", mit welcher man eine gegebene Tabelle mit Klick auf den Tabellenkopf auf- oder absteigend sortieren kann. Das soll bei jeder Spalte möglich sein.
Im Moment habe ich es ganz unelegant so gelöst, indem ich die ganze Seite 8x dupliziert und dann auf jeder Seite die Sortierung geändert habe. Ziemlich umständlich und mühsam. Das Ergebnis seht ihr hier.
Das geht bestimmt professioneller und eleganter! Nur wie?
Folgenden Code habe ich mal gebastelt (bzw. "ergoogelt):
====Code====
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include ("dbconnect.php");
?>
</head>
<body>
<?php
function direction($dir)
{
if($dir="ASC")
{ return "DESC";
} else
{
return "ASC";
}
}if($sort)
{
$dir=direction($dir);
$abfrage="SELECT f0, f1, f6, f9, f11, f13, f15, f16 ORDER BY $sort $dir";
$abfrage="SELECT f0, f1, f6, f9, f11, f13, f15, f16 ORDER BY $sort $dir";
}
else{
$abfrage="select f0, f1, f6, f9, f11, f13, f15, f16 FROM user1_3 ORDER BY f1";
}
$ergebnis = mysql_query($abfrage)or die("Anfrage fehlgeschlagen: " . mysql_error());?>
<p></p>
<table width="700" border="0" bordercolor="#FFFFCC" >
<tr>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong> <?php echo "<a href= 'test3.php?sort=$dir\'>Nachname</a>" ?></strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Vorname</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Motorrad</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Anz. Pers.</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Zimmer</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Anreise</strong></td>
<td nowrap="nowrap" bordercolor="#FFFFCC"><strong>Abreise</strong></td>
</tr>
<?php
while ($result = mysql_fetch_array($ergebnis)){
?>
<tr>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f1']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f0']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f9']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f11']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f13']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f15']?></td>
<td align="left" nowrap="nowrap" bordercolor="#FFFFCC"><?=$result['f16']?></td>
</tr>
<?php
}
?>
</table>
<?php mysql_close($connection);?>
<p> </p>
</body>
</html>
====Code Ende====
Ich habe hier alles Überflüssige weggelassen und nur den Code für die Tabelle aufgeführt.
Fragt bitte nicht, weshalb die Felder keine selbsterklärende Namen haben, sondern f0, f1, f2 etc. heissen. Ist so, und ich kann's leider nicht ändern.
Ich habe das ganze mal "test3.php" benannt, und wie ihr hier seht, funktioniert der Code auch ohne Fehlermeldung - aber die Sortierung wird eben auch nicht gemacht.
Ich bin für jede Hilfe dankbar!
Gruss, vtx-rider
Kommentar