POST-Daten in MYSQL-Abfrage

Hallo!

Ich habe folgendes Problem:

Ich habe eine Datenbank. Die lasse ich in einer HTML-Tabelle ausgeben und zwar von A-Z.
Wer die Seite aufruft sieht also alle Daten. Da die Tabelle aber recht groß ist, soll der Benutzer daraufhin auswählen können, welchen Anfangsbuchstaben die angezeigten Daten haben sollen.
Da habe ich an ein Formular gadacht, eine Auswahlliste mit A-Z. Wenn mein schlaues Buch nicht lügt, müßte ich nach Absenden des Formulars folgende Variable haben .$_POST[„buchstabe“].
Richtig?

Aber, wie bekomme ich das nun in die SQL-Abfrage rein?
Ich hatte mir das so vorgestellt:
$anfrage = "SELECT * FROM tabelle ORDER BY titel ASC WHERE titel LIKE .$_POST[„buchstabe“].* ";
So geht’s aber nicht.
Was mach ich falsch? Wie muß es richtig heißen? Wie geht es besser?

Für Eure Antworten schonmal herzlichen Dank im Voraus!
Tim

Da habe ich an ein Formular gadacht, eine Auswahlliste mit
A-Z. Wenn mein schlaues Buch nicht lügt, müßte ich nach
Absenden des Formulars folgende Variable haben
.$_POST[„buchstabe“].
Richtig?

Dein Buch lügt nicht.

Aber, wie bekomme ich das nun in die SQL-Abfrage rein?
Ich hatte mir das so vorgestellt:
$anfrage = "SELECT * FROM tabelle ORDER BY titel ASC WHERE
titel LIKE .$_POST[„buchstabe“].* ";

Klar geht das nicht. du hast die Gänsefüsschen vergessen.

$anfrage = „SELECT * FROM tabelle ORDER BY titel ASC WHERE titel LIKE '“.$_POST[„buchstabe“]."%’";
Ausserdem musst du % statt * nehmen.
Zudem sollten stringabfragen in ’ stehen.

Zur Erläuterung: Der Punkt verbindet die Variablen:
Der Text setz sich dann aus dem String: Select *…
der POST-Variablen
und dem %’ zusammen.
Die Gänsefüßchen grenzen die Stringelemente ein.

hallo tim,

Da habe ich an ein Formular gadacht, eine Auswahlliste mit
A-Z. Wenn mein schlaues Buch nicht lügt, müßte ich nach
Absenden des Formulars folgende Variable haben
.$_POST[„buchstabe“].

bedingt wahr. nur dann wenn das eingabefeld deines Formulares den namen buchstabe hat

dann ja, dann hast du im naechsten formular min. die zwei POST Variablen. $_POST[„buchstabe“] und $_POST[„jojojo“]

Aber, wie bekomme ich das nun in die SQL-Abfrage rein?
Ich hatte mir das so vorgestellt:
$anfrage = "SELECT * FROM tabelle ORDER BY titel ASC WHERE
titel LIKE .$_POST[„buchstabe“].* ";
So geht’s aber nicht.

naja, wie schon gesagt qoutes und leerzeichen werden deine Freunde sein :smile:

gruss josh

SUBSTRING sollte die effizientere alternative zu LIKE sein:
http://dev.mysql.com/doc/refman/5.0/en/string-functi…

$anfrage = „SELECT * FROM tabelle ORDER BY titel ASC WHERE SUBSTRING(titel, 1, 1) = '“ . $_POST[„buchstabe“] . „’“;

1 Like

Hallo!

Vielen Dank euch allen für die hilfreichen Antworten. Ich hab das mit der Suche jetzt erst mal anders geregelt, über eine id. Das läuft auch ganz gut.
Allerdings hätte ich zu dem Thema nun doch noch ein paar Fragen, aber die stell ich mal lieber im Datenbank-Forum!

Tim