[GastForen Programmierung/Entwicklung PHP und MySQL Hilfe.... Fehlerhafte SQL-Abfrage

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Hilfe.... Fehlerhafte SQL-Abfrage

Anonym
Beiträge gesamt: 22827

17. Jun 2004, 09:37
Beitrag # 1 von 5
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe folgendes Problem.....

Ich habe für eine Community eine Usersuche programmiert, in welcher ich aus der DB die User nach verschiedenen Kriterien gesucht habe, wie z.B. "Alter zwischen 25 und 30" und "Ort" oder "PLZ".... usw.

Leider musste ich feststellen, dass die suche fehlerhaft wurde,
sobald mehrere "AND" bzw. "OR" -Abfragen in einem rutsch gemacht wurden.


$abfrage ="SELECT from $tabelle_daten USER WHERE (AGE between '$alter1' AND '$alter2') AND '$ort' OR '$plz'";
$ergebnis = mysql_query($abfrage);

Diese Abfrage geht ja noch, aber wenn es mehr wird stimmt die Abfrage bzw. das Ergebnis nicht mehr.
Kann man das Ergebnis vielleicht in ein Array schreiben und in diesem Array nach weiteren Merkmalen der Person suchen, um die Suche zu verfeinern?

Wenn "Ja" wie muss ich sowas programmieren......???
Wenn "Nein" wie programmiere ich die o.g. Abfrage richtig, damit die Ergebnisse stimmen?

Wäre klasse wenn mir da jemand helfen könnte. :-)

Danke für Eure Hilfe schonmal im vorraus.

Gruß Phil
X

Hilfe.... Fehlerhafte SQL-Abfrage

oesi50
  
Beiträge gesamt: 2315

17. Jun 2004, 09:55
Beitrag # 2 von 5
Beitrag ID: #91488
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo Phil,

ich vermute mal, hier fehlen nur Klammern.

... age AND (ort OR plz)

alte Regel aus der Schule: Punktrechnung geht vor Strichrechnung

Punktrechnung: AND
Strichrechnung OR

Eselsbrücke:

age * ort + plz
gibt was anderes als:
age * ( ort + plz )

Änderst Du jedes Jahr die Spalte AGE?


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#91485]
(Dieser Beitrag wurde von oesi50 am 17. Jun 2004, 09:58 geändert)

Hilfe.... Fehlerhafte SQL-Abfrage

Anonym
Beiträge gesamt: 22827

17. Jun 2004, 10:44
Beitrag # 3 von 5
Beitrag ID: #91503
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi Oesi,

mit Klammersetzung habe ich auch schon rumgetüftelt.....
Aber auch hier habe ich das Problem, dass das Ergebnis, bei mehreren Suchmerkmalen (die vom Suchformular übergeben werden), nicht mehr stimmen.
Ich brauche ja leider nicht nur Alter, Ort und PLZ, da sind ja noch einige Kriterien mehr....

Und Du bist sicher, dass es nur an den Klammern liegt?

Hmmmmm.... kann man das denn nicht vereinfachen, indem man immer nur ein Merkmal nach dem Anderen sucht?
Also indem man das 1. Suchergebnis (z.b. Alter) in einem Array speichert und dort dann weiter nach allen Treffern sucht, die mit einem bestimmten Ort zu tun haben usw. bis alle Merkmale verarbeitet wurden?

Vielleicht hat da ja jemand eine Idee.

Würde mich vor den Klammern bewahren :-)....

Danke nochmal für Eure Hilfe
Gruß Phil


als Antwort auf: [#91485]

Hilfe.... Fehlerhafte SQL-Abfrage

oesi50
  
Beiträge gesamt: 2315

17. Jun 2004, 10:54
Beitrag # 4 von 5
Beitrag ID: #91508
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Beschreib doch mal Dein Problem verbal. Daraus ergibt sich im allgemeinen automatisch die Lösung.

Die Idee mit einem Array mag ja ganz schön sein, aber wozu braucht man dann ein Datenbanksystem?

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#91485]

Hilfe.... Fehlerhafte SQL-Abfrage

Miro Dietiker
Beiträge gesamt: 699

17. Jun 2004, 12:18
Beitrag # 5 von 5
Beitrag ID: #91550
Bewertung:
(959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
$abfrage ="SELECT from $tabelle_daten USER WHERE (AGE between '$alter1' AND '$alter2') AND '$ort' OR '$plz'";

Kann es sein, dass du vergessen hast die Spalten zu erwähnen bei
den hinteren zwei Ausdrücken?

$abfrage ="SELECT from $tabelle_daten USER WHERE (AGE between '$alter1' AND '$alter2') AND ORT='$ort' OR PLZ='$plz'";

Ein weiterer wichtiger Punkt ist noch, dass man die Werte
$ort, $plz, $alter1, $alter2
Unbedingt escapen muss, da sonst die Abfrage unsicher ist und
zumindest bei der Eingabe von dem Zeichen ' ins Suchkriterium
ein Fehler ausgibt..

... mysql_escape_string($plz) ...

GrEeZ: Miro Dietiker


als Antwort auf: [#91485]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!