php tabelle sortieren
Hallo,
ich frage über ein formular daten aus der sql ab, und gebe diese über php aus.
Nun will ich, dass über der Tabelle ein Formular mit Radio buttons erscheint,
welches ermöglicht die Tabelle nach Preis, Ort, Sterne... zu sortieren.
-ich habe da mal was versucht, was aber nicht klappt, ist vermutlich auch ganz
falsch
mein php seht ihr hier:
Grüsse
ich frage über ein formular daten aus der sql ab, und gebe diese über php aus.
Nun will ich, dass über der Tabelle ein Formular mit Radio buttons erscheint,
welches ermöglicht die Tabelle nach Preis, Ort, Sterne... zu sortieren.
-ich habe da mal was versucht, was aber nicht klappt, ist vermutlich auch ganz
falsch
mein php seht ihr hier:
<html>
<body>
<form method="post" action="ud08.php?$sqlab">
<p>Ergebnis Sortieren nach: <input type="radio" name="sortieren" value="preis" checked>Preis <input type="radio" name="sortieren" value="ort">Ort <input type="radio" name="sortieren" value="sterne">Sterne <input type="radio" name="sortieren" value="see">entfernung zum See <input type="submit"></p>
</form>
<p><?php
// deklaration/definition der Variablen
$preis = isset($_POST["preis"]) ? $_POST["preis"] : null;
$sterne = isset($_POST["sterne"]) ? $_POST["sterne"] : null;
$see = isset($_POST["see"]) ? $_POST["see"] : null;
$sortieren = isset($_POST["sortieren"]) ? $_POST["sortieren"] : null;
$ort = isset($_POST["ort"]) ? $_POST["ort"] : null;
$verpflegung = isset($_POST["verpflegung"]) ? $_POST["verpflegung"] : null;
$airfn = isset($_POST["airfn"]) ? $_POST["airfn"] : null;
$pool = isset($_POST["pool"]) ? $_POST["pool"] : null;
$klima = isset($_POST["klima"]) ? $_POST["klima"] : null;
$kundennummer = isset($_POST["kundennummer"]) ? $_POST["kundennummer"] : null;
//verbindung aufnehmen
mysql_connect();
mysql_select_db("firma");
if(!empty($ort)){
$sqlab = "SELECT name, infoseite, bild, typ, sterne, ort, preis, beschreibung, kundennummer FROM gastgeber";
$sqlab .= " WHERE preis <= '".$preis."'";
$sqlab .= " AND sterne >= '".$sterne."'";
$sqlab .= " AND see <= '".$see."'";
$sqlab .= " AND airfn <= '".$airfn."'";
$sqlab .= " AND verpflegung >= '".$verpflegung."'";
$sqlab .= " AND pool >= '".$pool."'";
$sqlab .= " AND klima >= '".$klima."'";
$sqlab .= " AND(";
foreach ($ort AS $key => $_value){
if( !empty( $_value ) ) {
$sqlab .= ($key>0?" OR":"")." ort = '".$_value."'";
}
}
$sqlab .= ")";
//funktion sortieren
if ( !empty($sortieren))
{
$sqlab .= " order by $sortieren";
}
else
{
$sqlab .= " order by $preis";
}
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);
if ($num==0) echo "keine passenden Datensätze gefunden";
// Tabellenbeginn
echo "<table border='0' bgcolor='#FEF08D' >";
// Tabelleninhalt
while ($zeile = mysql_fetch_assoc($res))
{
echo "<tr>";
// Überschrift
echo "<tr bgcolor='#F1D247'> <td align='center' valign='middle'><b>$zeile[typ] $zeile[name]</b></td> <td align='center'>Preis ab: $zeile[preis] € $zeile[sterne] Sterne</td> <td align='center'>Ort: $zeile[ort]</td></tr>";
// Inhalt
echo '<td align="center" valign="middle" bgcolor="#FEF08D"><img src="'.$zeile['bild'].'" width="150" height="100"></td>';
echo "<td align='center' valign='middle' bgcolor='#FEF08D' width='300'>$zeile[beschreibung]</td>";
echo '<td align="center" valign="middle" bgcolor="#FEF08D"><a href="info.php?kundennummer='.$zeile['kundennummer'].'">link</a>
</form></td>';
echo "</tr>";
}
// Tabellenende
echo "</table>";
}
else{
echo "Bitte Ort waehlen!";
}
?>
Grüsse
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 70300
Url: https://administrator.de/forum/php-tabelle-sortieren-70300.html
Ausgedruckt am: 05.04.2025 um 18:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
die fehlenden : bei den ?: - Operatoren übersehe ich jetzt mal, ebenso wie die fehlenden vor dem Kommentar bei mysql_connect(), darum geht es hier nicht.
Tipp: Du kannst an deine SQL-Query das Attribut ORDER BY anhängen, z.B.:
... ORDER BY `Name` ASC aufsteigend nach dem Feld Name sortieren
... ORDER BY `Name` DESC // absteigend nach Name sortieren
-nik
die fehlenden : bei den ?: - Operatoren übersehe ich jetzt mal, ebenso wie die fehlenden vor dem Kommentar bei mysql_connect(), darum geht es hier nicht.
Tipp: Du kannst an deine SQL-Query das Attribut ORDER BY anhängen, z.B.:
... ORDER BY `Name` ASC aufsteigend nach dem Feld Name sortieren
... ORDER BY `Name` DESC // absteigend nach Name sortieren
-nik
Hier nomma was ausführlicher: Tabellen sortieren mit PHP