PHP Abfrage mit Buttons sortieren

calvinklein

Grünschnabel
hallo liebe user,

ich frage mit einem php-code eine sql-db ab. funktioniert soweit problemlos.


kurze randinfo zur tabelle:
12 zeilige tabelle mit 3 spalten: orteid, ort, kreis.

code dazu:


<body>

<table border="0" width="600">
<tr>
<td><input name="heilbronn" type="button" value="Kreis Heilbronn"></td>
<td><input name="hohenlohe" type="button" value="Kreis Hohenlohe"></td>
<td><input name="rnk" type="button" value="Kreis Rhein-Neckar"></td>
</tr>
</table>
<br><br><br>

<?php

error_reporting(E_ALL);
ini_set('display_error', true);

include("connect.inc.php");

$abfrage ="SELECT orteid, ort, kreis FROM orte"
$ergebnis = mysql_query($abfrage) or die (mysql_error());

echo("<table border=0 width=600>");
echo("<tr><td><b>Orte-ID</b></td><td><b>Ort</b></td><td><b>Kreis</b></td></tr>");

while($row = mysql_fetch_assoc($ergebnis))

{
echo("<td>" . $row["orteid"] . "</td>");
echo("<td>" . $row["ort"] . "</td>");
echo("<td>" . $row["kreis"] ."</td>");
echo("</tr>");
}
echo("</table>");
?>
</body>

wie nun auffällt, habe ich im oberen bereich des codes drei buttons erstellt. ich möchte die 12 einträge nach KREIS sortieren. es gibt 3 kreise: heilbronn, hohenlohe, rnk. diese sortierung soll per klick auf den entsprechenden button geschehen.

hat jemand einen vorschlag?
 
Hallo,

mir ist nicht klar, was du da mit den 3 Buttons erreichen willst,
du kannst dir die Ergebnisse mittels ORDER BY `kreis` sortiert ausgeben lassen ?!
Falls du erreichen möchtest, dass NUR die Einträge eines bestimmten Kreises ausgegeben werden, musst das eben mit WHERE `kreis` = 'kreisname' einschränken!

Denkanstoss dazu:
PHP:
if(isset($_POST['heilbronn'])){
$abfrage = "SELECT ... WHERE `kreis` = ...";
}
elseif(isset($_POST['hohenlohe'])){
$abfrage = "SELECT ... WHERE `kreis` = '".mysql_real_escape_string($_POST('hohenlohe'))."'";
}
elseif(...)

Und bitte auf Groß- und Kleinschreibung achten! Danke.

MfG
 
guten morgen,
wow super vielen dank für die schnelle antwort.
ganz genau, damit möchte ich erreichen, dass ich per button-klick bloß einen bestimmten kreis angezeigt haben möchte.
also ich probier jetzt mal schnell den code aus und wenn ich rückfragen haben sollte, poste ich einfach hier nochmal!

bis dann!
ck
 
So, hab#s nicht ganz hingekriegt!
Mein Code:


if(isset($_POST['heilbronn']))
{
$abfrage = "SELECT orteid, ort, kreis WHERE 'kreis' = "Heilbronn"";
}
elseif(isset($_POST['hohenlohe']))
{
$abfrage = "SELECT orteid, ort, kreis WHERE 'kreis' = "Hohenlohe"".mysql_real_escape_string($_POST('hohenlohe'))."'";
}
elseif(isset($_POST['rnk']))
{
$abfrage = "SELECT orteid, ort, kreis WHERE 'kreis' = "Kreis Rhein-Neckar"."mysql_real_escape_string($_POST('rnk'))."'";
}

$ergebnis = mysql_query($abfrage) or die (mysql_error());

Und zwar sagt mein Explorer
Notice: Undefined variable: abfrage in C:\xampp\htdocs\phpMyAdmin\scripts\test\abfrage_button.php on line 39
Query was empty.
Ist mein Aufbau der if-Abfrage php-technisch überhaupt soweit korrekt?
 
Hi,

anscheinend sind Deine Formulardaten nicht angekommen. Ist das in Deinem ersten Post der ganze Code? Du hast da einfach nur 3 Input-Felder, kein Formular.

LG
 
So wie du es jetzt gemacht hast ist der "... mysql_real_escape_string(...).."-Teil weg zu lassen!
Das Query würde in deinem Fall jetzt
"SELECT orteid, ort, kreis WHERE 'kreis' = "Hohenlohe" Hohenlohe" ergeben
-> passt nicht ;)
Außerdem sind die Angaben falsch gequotet:
Feld & Tabellennamen in Backticks ( `Feld` ), Werte in Hochkomma ( 'Wert' )
Also "SELECT `orteid`, `ort`, `kreis` FROM `tabelle` WHERE `kreis` = 'Hohenlohe'" !
Die Auswahl der Tabelle, also der FROM-Teil fehlt in deinem Query auch.

MfG
 
Jepp, stimmt.

Also, calvinklein:
Dein Script führt so, wie du es gepostet hast, keinen Teil des if-Blocks aus, da nie einer der Buttons per POST übertragen wird, sprich dein Script setzt an dieser Stelle an
PHP:
$ergebnis = mysql_query($abfrage) or die (mysql_error());
Und da die dort genutzte Variable $abfrage nirgends definiert wird, kommt die von dir genannte Fehlermeldung.
Das "Query was empty" ist die logische Folge, denn es wird ja mit einer leeren Variable gesendet.
-> Wie kuddeldaddeldu schon sagte, musst du eine Formular basteln, das die Buttons per POST überträgt <form method="post" action=""><input type="button" ...></form>

MfG
 
also der gesamte code sieht so aus:

<body>

<table border="0" width="600">
<tr>
<td><input name="heilbronn" type="button" value="Kreis Heilbronn"></td>
<td><input name="hohenlohe" type="button" value="Kreis Hohenlohe"></td>
<td><input name="rnk" type="button" value="Kreis Rhein-Neckar"></td>
</tr>
</table>
<br><br><br>

<?php

error_reporting(E_ALL);
ini_set('display_error', true);

include("connect.inc.php");

$abfrage ="SELECT orteid, ort, kreis FROM orte";
$ergebnis = mysql_query($abfrage) or die (mysql_error());

echo("<table border=0 width=600>");
echo("<tr><td><b>Orte-ID</b></td><td><b>Ort</b></td><td><b>Kreis</b></td></tr>");

while($row = mysql_fetch_assoc($ergebnis))

{
echo("<td>" . $row["orteid"] . "</td>");
echo("<td>" . $row["ort"] . "</td>");
echo("<td>" . $row["kreis"] ."</td>");
echo("</tr>");
}
echo("</table>");
?>
</body>
 
Hi,

ja, wie gesagt. Da fehlt ein Formular. Du kannst nicht einfach Buttons irgendwo hinsetzen und erwarten, dass dann wie durch Zauberhand das Gewünschte passiert. Wenn Du nicht weißt, wie das geht, hilft Dir vielleicht quakenet weiter?

LG
 
Zurück