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-Key: 70300

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

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

Member: Natureshadow
Natureshadow Oct 06, 2007 at 21:46:20 (UTC)
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
Member: Enclave
Enclave Oct 06, 2007 at 22:37:27 (UTC)
Goto Top
Hier nomma was ausführlicher: Tabellen sortieren mit PHP