sandrop
Goto Top

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 face-sad


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] € &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $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

Content-ID: 70300

Url: https://administrator.de/forum/php-tabelle-sortieren-70300.html

Ausgedruckt am: 05.04.2025 um 18:04 Uhr

Natureshadow
Natureshadow 06.10.2007 um 23:46:20 Uhr
Goto Top
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
Enclave
Enclave 07.10.2007 um 00:37:27 Uhr
Goto Top
Hier nomma was ausführlicher: Tabellen sortieren mit PHP