mysql:::Suche / Abfrage

jackob100

Mitglied
Hallo Leute

Brauche ein Gedanken anstoss:)

Meine Frage:

PHP:
Meine Mysql Tabelle

CREATE TABLE `KUNDEN`
(
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `NUMMER` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `FIRMA` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `ORT` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`ID`)
)


Ich habe ein Formular erstellt um nach Kunden zu suchen.

3 Textfelder Nummer / Firma / Ort

Ich möchte die Möglichkeit haben nach diesen 3 Kriterien einen Kunden zu suchen.

z.B. Nummer=562389 Ort=XYZ
Ergebniss= Die Firma mit der Kundennummer 562389 mit Standort in XYZ

oder

z.B. Ort=XYZ
Ergebniss= Alle Firmen mit Standort XYZ

Vieleicht wird mal ein Name falsch ins Textfeld geschrieben, also möchte ich auch noch die Firmen die eventuell in Frage kommen.

Wie löse ich das mit einer mysql abfrage?
 
ich würd es so machen:
Du erstellst das Eingabeformular, dann übergibst du die ganzen Daten an dein suchscript welches dann im Grunde eine ganz normale mySQL abfrage ist nur mit deinen Variablen die du zuvor gesendet hast :) Mit dem falschen Namen kann ich dir leider net helfen XD da komm ich grad net drauf :D is aber genau so simpel^^ ich such aber nochma bei mir hoffe ich konnte dir nen kleinen Anstoß geben :)
 
Dank BadBoy227, aber das ist mir klar;)

Meine Frage ist: Wie löse ich das mit einer mysql abfrage?
Sprich wie sieht diese aus

Habe es nun so gelöst:

PHP:
SELECT NUMMER, FIRMA, ORT FROM KUNDEN WHERE NUMMER LIKE '%".$_POST['KUNDENNUMMER']."%' AND ORT LIKE '%".$_POST['ORT']."%' AND FIRMA LIKE '%".$_POST['FIRMA']."%'"

Klappt wunerbar, habe bis jetzt kein Fehler entdeckt.

Macht ihr das genau so? findet ihr diesen Weg schlecht, wie ist es besser?

Danke
 
Dank BadBoy227, aber das ist mir klar;)

Meine Frage ist: Wie löse ich das mit einer mysql abfrage?
Sprich wie sieht diese aus

Habe es nun so gelöst:

PHP:
SELECT NUMMER, FIRMA, ORT FROM KUNDEN WHERE NUMMER LIKE '%".$_POST['KUNDENNUMMER']."%' AND ORT LIKE '%".$_POST['ORT']."%' AND FIRMA LIKE '%".$_POST['FIRMA']."%'"

Klappt wunerbar, habe bis jetzt kein Fehler entdeckt.

Macht ihr das genau so? findet ihr diesen Weg schlecht, wie ist es besser?

Danke


Ist etwas unsicher wenn du direkt $_POST[] übergibts, nutze besser mysql_real_escape_string($_POST[]) das gibt der Datenbank etwas Schutz vor attacken, z.B. werden ' ' Maskiert welche bei deiner Variante zur fehlern führen würden.
 
Du könntest auch das AND durch ein OR erstezen glaub ich, weil so ist "er gezwungen" nach allen ähnlichen zu suchen und ich glaube, das erfordert dann eine Eingabe von allen Feldern. Was du auch machen könntest: Du ersetzt das AND durch eine Variable. Diese Variable wird dann durch einen Radiobutton im Formular bestimmt. Die beiden Auswahl Werte wären dann AND und OR :) so kann der User dann selber entscheiden wie gesucht werden soll :)
 
Zurück