SQL-Abfrage
Mirko
- datenbank
0 Klawischnigg0 Mirko0 Klawischnigg0 Mirko
Hallo zusammen,
ich bin PHP/SQL-Neuling und möchte für die folgenden Tabelle eine Abfrage gestalten:
ID NAME ORT AEPFEL GURKEN MOEHREN BIRNEN KIRSCHEN
1 Hans Bonn 1 1 1 1
2 Uwe Köln 1 1 1
3 Udo Bonn 1 1 1 1
4 Uli Köln 1 1 1
Die Abfrage soll es ermöglichen nach Ort und Gemüse/Obst zu selektieren.
Also ich meine z.B. soll eine Selektion möglich sein, die es erlaubt zu sagen zeige mir alle die in Bonn Möhren haben oder zeige mir alle die in Köln Kirschen haben etc.
Kann mir von euch jemand weiterhelfen bzw. geht das überhaupt mit der o.g. Tabelle?
Vielen Dank im Vorraus und Grüsse
MIRKO
Hi there,
Also ich meine z.B. soll eine Selektion möglich sein, die es erlaubt zu sagen zeige mir alle die in Bonn Möhren haben oder zeige mir alle die in Köln Kirschen haben etc.
select * from tabelle where ort='Bonn' AND moehren='1';
Hallo,
Also ich meine z.B. soll eine Selektion möglich sein, die es erlaubt zu sagen zeige mir alle die in Bonn Möhren haben oder zeige mir alle die in Köln Kirschen haben etc.
select * from tabelle where ort='Bonn' AND moehren='1';
das meine ich nicht.
Das Formular zur Suche hat zwei Pull-Down-Menüs, mit dem einen wähle ich den Ort und mit dem zweiten das Gemüse/Obst aus und klicke anschließend auf Suchen.
Grüsse
MIRKO
Hi there,
Das Formular zur Suche hat zwei Pull-Down-Menüs, mit dem einen wähle ich den Ort und mit dem zweiten das Gemüse/Obst aus und klicke anschließend auf Suchen.
Und?
Hallo,
Das Formular zur Suche hat zwei Pull-Down-Menüs, mit dem einen wähle ich den Ort und mit dem zweiten das Gemüse/Obst aus und klicke anschließend auf Suchen.
Und?
Mir ist nicht klar wie ich in der Abfrage select * from tabelle where ort='Bonn' AND moehren='1'; dann statt den moehren die kirschen rein bekomme. Beim Ort ist mir klar den übergebe ich als Variable aus dem Pull-Down-Menü.
Grüsse
MIRKO
Hi there,
Mir ist nicht klar wie ich in der Abfrage select * from tabelle where ort='Bonn' AND moehren='1'; dann statt den moehren die kirschen rein bekomme. Beim Ort ist mir klar den übergebe ich als Variable aus dem Pull-Down-Menü.
Das machst Du mit dem Gemüse genauso. Eigentlich hat Dein "Problem" mit Datenbanken nicht wirklich etwas zu tun. Ich nehme einmal an, daß Du PHP benutzt, dann generierst Du eine Selectoption mit <select name="GEMUESE" etc. Damit erzeugt die Auswahl eine Variable namens $GEMUESE, die Du in Deinem sql-Statement verwenden kannst...
Hallo Freunde des gehobenen Forumsgenusses,
Das machst Du mit dem Gemüse genauso. Eigentlich hat Dein "Problem" mit Datenbanken nicht wirklich etwas zu tun. Ich nehme einmal an, daß Du PHP benutzt, dann generierst Du eine Selectoption mit <select name="GEMUESE" etc. Damit erzeugt die Auswahl eine Variable namens $GEMUESE, die Du in Deinem sql-Statement verwenden kannst...
Du setzt doch nicht etwa auf register_globals = on, oder? Du weist doch, dass das _BÖSE_ ist, oder nicht?
Gruß
Alexander Brock
Hi there,
Du setzt doch nicht etwa auf register_globals = on, oder? Du weist doch, dass das _BÖSE_ ist, oder nicht?
ich setze überhaupt nichts auf "on". Hab' ich geschrieben, daß er an der php.ini herumbasteln soll? Und Tabellen verwende ich nur zur Darstellung tabellarischer Daten. Frames sind gaga und Javascript behindert die Behinderten. Habe ich etwas vergessen?
Hallo Freunde des gehobenen Forumsgenusses,
ich setze überhaupt nichts auf "on". Hab' ich geschrieben, daß er an der php.ini herumbasteln soll?
Du hast mich nicht verstanden, ich habe gefragt ob du auf die Technik register_globals setzt.
Ich nehme einmal an, daß Du PHP benutzt, dann generierst Du eine Selectoption mit <select name="GEMUESE" etc. Damit erzeugt die Auswahl eine Variable namens $GEMUESE
Das ist genau das Verhalten, das PHP an den Tag legt wenn register_globals auf on steht, normalerweise findet man diesen Wert in $_REQUEST['GEMUESE']
.
Gruß
Alexander Brock
Javascript behindert die Behinderten. Habe ich etwas vergessen?
Ja, z.B. das nicht jeder Rücksicht auf Behinderte nehmen will. Seine Seite ist vllt. für derart Behinderte gar nicht zugänglich (Firmenintranet) oder er will sie nicht als Zielgruppe haben?!
Ich verfolge nun schon länger diese Diskussionen zu "Barriere-freie-Seiten" und habe festgestellt, welch (meiner Meinung nach unsinnige) Mühe sich doch manch einer macht um Minderheiten zu bedienen.
Du setzt doch nicht etwa auf register_globals = on, oder? Du weist doch, dass das _BÖSE_ ist, oder nicht?
Und abgesehen davon: Bist Du tatsächlich der Meinung, daß jemand, der solche Frage wie der Originalposter stellt, auch nur irgendeinen Einfluß darauf hat, auf welchen Wert register_globals gestellt ist? Ja?
Moin!
Mir ist nicht klar wie ich in der Abfrage select * from tabelle where ort='Bonn' AND moehren='1'; dann statt den moehren die kirschen rein bekomme. Beim Ort ist mir klar den übergebe ich als Variable aus dem Pull-Down-Menü.
Das Problem ist, dass du für die ganzen Obst- und Gemüsesorten eigene Spalten in der Tabelle angelegt hast.
Das ist solange in Ordnung, wie von vornherein absolut felsenfest festgelegt ist, welche Gemüse man eintragen und verwenden kann. Da aber Gemüse und Obst Dinge sind, die sich im Laufe der Zeit auch mal verändern (neue, exotische Sorten sind plötzlich in, oder generell soll die Auswählbarkeit der Tabelle erweitert werden), ist dein Ansatz nur als extrem ungünstig zu bezeichnen.
Für deine an sich simpel aussehende Anwendung benötigst du schon insgesamt DREI Tabellen in der Datenbank:
In der ersten Tabelle "vendor" stehen vendor_id, Name und Ort.
In der zweiten Tabelle "food" stehen food_id und Name (des Gemüses)
In einer dritten Tabelle "vendor_food" werden Verkäufer und Gemüse verknüpft: vendor_id und food_id stehen drin.
Jetzt kannst du in der ersten Tabelle alle deine Händler anlegen.
In der zweiten Tabelle legst du alle auswählbaren bzw. existierenden Gemüse an.
Und in der dritten Tabelle trägst du ein, welche vendor_id welche food_id hat.
Die Abfrage nach den Kirschen in Bonn oder den Äpfeln in Köln erfolgt dann über diese Verknüpfungstabelle. Dazu werden JOINs verwenden, also Abfragen, die mehrere Tabellen einer Datenbank miteinander verknüpfen.
- Sven Rautenberg