• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] wie funktioniert die sortby ausgabe mit dropdown unter pdo statt mysql_fetch... ?

flummi1988

Neues Mitglied
Hallo ihr lieben,
ich habe folgendes Problem, ich habe noch ein altes Telefonbuch mit mysql_fetch......, was logischerweise nun auf einigen Servern nicht mehr funktioniert siehe Quellcode. Leider komme ich mit der PDO garnicht zurecht, somit wäre ich furchtbar dankbar, wenn mir hier einer von euch helfen könnte.

Code:
$anzeigen = $sql = "SELECT * FROM telefonbuch ORDER BY".$auswahl."";
 
echo "<table border='1'>";
echo "<tr>";
echo "<th>Name</th><th>Vorname</th><th>Telefon</th><th>Email</th>";
echo "<th>entfernen</th>";
echo "<th>";
echo "<form method='get' action='".$_SERVER['PHP_SELF']."'>";
echo "<select name='auswahl'>";
echo "<option value='id'>sortieren nach:</option>";
echo "<option value='name'>Name</option>";
echo "<option value='vorname'>Vorname</option>";
echo "<option value='telefon'>Telefon</option>";
echo "<option value='email'>Email</option>";
echo "</select>";
echo "</th>";
echo "<th>";
echo "<input type='submit' name='sortieren' value='OK'/>";
echo "</th>";
echo "</form>";
echo "</tr>";

 
while($ausgabe = mysql_fetch_array($anzeigen)){
    echo "<tr>";
    echo "<td>".$ausgabe['name']."</td>";
    echo "<td>".$ausgabe['vorname']."</td>";
    echo "<td>".$ausgabe['telefon']."</td>";
    echo "<td>".$ausgabe['email']."</td>";
    echo "<td><a href='".$_SERVER['PHP_SELF']."?aktion=delete&amp;objekt=".$ausgabe['id']."'>entfernen</a></td><td>&amp;nbsp;</td><td>&amp;nbsp;</td>";
    echo "</tr>";
}
 
echo "</table>";

Mittels pdo ohne sortierung wäre es ja so:

PHP:
$sql = "SELECT * FROM users";
foreach ($pdo->query($sql) as $row) {
   echo $row['name']."tr td ....";
   echo $row['vorname']."tr td ....";
   echo $row['telefon']."tr td ....";
......
}

wie baue ich dort die Sortierung noch mit ein ?
 
Zuletzt bearbeitet:
Werbung:
Was sollen denn bitte diese echo-Orgien??? Das ist grausam.

Und ein order by hat nichts mit mysql_query, mysqli_query oder pdo::query zu tun.
PHP:
$sql = "SELECT `name`, `vorname`, `telefon`, `email` FROM `users` order by `name`";
Und schreibe nie "Select *", sondern zähle die Spalten auf, die du brauchst.

Wenn dir PDO nicht so zusagt, kannst du ja auch die mysqli_*-Funktionen nutzen

$_SERVER['PHP_SELF'] ist auch keine gute Idee, siehe https://www.google.de/search?q=php_self+xss
 
Erstmal vielen Dank nu.tella,
Dank dem Hinweis bin ich nun erstmal einen Schritt weiter.
Code:
.::ALT::.
while($ausgabe = mysql_fetch_array($anzeigen)){
    echo "<tr>";
    echo "<td>".$ausgabe['name']."</td>";
    echo "<td>".$ausgabe['vorname']."</td>";
    echo "<td>".$ausgabe['telefon']."</td>";
    echo "<td>".$ausgabe['email']."</td>";
    echo "<td><a href='".$_SERVER['PHP_SELF']."?aktion=delete&objekt=".$ausgabe['id']."'>entfernen</a></td><td>&nbsp;</td><td>&nbsp;</td>";
    echo "</tr>";
}

.::NEU::.
$ausgabe = $sql = "SELECT * FROM telefonbuch ORDER BY ".$auswahl."";
foreach ($pdo->query($sql) as $ausgabe) {
    echo "<tr>";
    echo "<td>".$ausgabe['name']."</td>";
    echo "<td>".$ausgabe['vorname']."</td>";
    echo "<td>".$ausgabe['telefon']."</td>";
    echo "<td>".$ausgabe['email']."</td>";
dies funktioniert auch schon einmal.

Zur DropDown Select...option..., kenne ich selber keine andere Variante, ist aber ein guter Denkanstoß.

$_Server...injection ist mir bekannt, versuche ja gerade das olle Turnschuh Script überhaupt erstmal wieder lauffähig zu bekommen.
 
Werbung:
Zurück
Oben