pappo1982
Goto Top

Suche PHP MySQL mit exaktem Ergebnis

Hallo,

ich habe wahrscheinlich irgendeinen Denkfehler in meinem Script. Ich möchte dass im Suchfeld nach der Stadt gesucht wird. Ich benötige im Ergebnis aber nur das exakte Ergebnis. Aktuell gibt es mir aber alle Datensätze aus die das Suchwort enthalten. Kann mir bitte jemand helfen?

Content-Key: 3511412677

Url: https://administrator.de/contentid/3511412677

Ausgedruckt am: 02.10.2022 um 18:10 Uhr

Mitglied: michi1983
michi1983 01.08.2022 aktualisiert um 10:13:22 Uhr
Goto Top
Hallo,


https://www.w3schools.com/sql/sql_like.asp

ist dafür verantwortlich.

Ersetzte das LIKE mit einem = und gib die % vor und nach dem Suchwort weg.


Die Sicherheitsaspekte in deinem Code jetzt mal außenvor gelassen!

Gruß
Mitglied: ottinho
ottinho 01.08.2022 um 10:12:34 Uhr
Goto Top
Hi,

du musst Zeile 25 anpassen. Stichwort "LIKE %".

Und so wie das aktuell aussieht baust du dir eine tolle SQL Injection. Mach dich mal schlau bezüglich prepared statements.

Viele Grüße
ottinho
Mitglied: Pappo1982
Pappo1982 01.08.2022 aktualisiert um 10:30:27 Uhr
Goto Top
Zitat von @michi1983:

Hallo,


https://www.w3schools.com/sql/sql_like.asp

ist dafür verantwortlich.

Ersetzte das LIKE mit einem = und gib die % vor und nach dem Suchwort weg.


Die Sicherheitsaspekte in deinem Code jetzt mal außenvor gelassen!

Gruß

Jetzt gibt es mir aber gar keine Ergebnisse mehr aus! Auch wenn diese exakt wie in der Datenbank sind. So hatte ich das nämlich schonmal!
Mitglied: michi1983
michi1983 01.08.2022 um 11:16:20 Uhr
Goto Top
Zitat von @Pappo1982:
Jetzt gibt es mir aber gar keine Ergebnisse mehr aus! Auch wenn diese exakt wie in der Datenbank sind. So hatte ich das nämlich schonmal!

Kannst du denn mal das komplette "finale" SQL Statement ausgeben hier bei dem du keine Ergebnisse mehr bekommst?
Mitglied: Pappo1982
Pappo1982 01.08.2022 aktualisiert um 11:27:07 Uhr
Goto Top
Zitat von @michi1983:

Zitat von @Pappo1982:
Jetzt gibt es mir aber gar keine Ergebnisse mehr aus! Auch wenn diese exakt wie in der Datenbank sind. So hatte ich das nämlich schonmal!

Kannst du denn mal das komplette "finale" SQL Statement ausgeben hier bei dem du keine Ergebnisse mehr bekommst?


Das hier spuckt er mir aus wenn ich
ausgebe

SELECT * FROM rechner WHERE `city` = Hof
Mitglied: tk1234
tk1234 01.08.2022 um 11:43:38 Uhr
Goto Top
Zitat von @Pappo1982:
Das hier spuckt er mir aus wenn ich
ausgebe

SELECT * FROM rechner WHERE `city` = Hof

Die Spalte Hof gibt es nicht, du brauchst hier noch Anführungszeichen um den gesuchten Wert - der Query muss dann am Ende so aussehen: SELECT * FROM rechner WHERE `city` = 'Hof'

Aber bevor du weiter machst: beschäftige dich mit dem Thema Kontextwechsel - das was du hier machst ist nämlich richtig gefährlich!
Mitglied: LordGurke
LordGurke 01.08.2022 aktualisiert um 14:15:53 Uhr
Goto Top
Oder, um das Problem der SQL-Injection mal zu verdeutlichen:
Suche doch mal nach diesem Begriff:
Mitglied: Pappo1982
Pappo1982 01.08.2022 um 15:43:09 Uhr
Goto Top
Zitat von @tk1234:

Zitat von @Pappo1982:
Das hier spuckt er mir aus wenn ich
ausgebe

SELECT * FROM rechner WHERE `city` = Hof

Die Spalte Hof gibt es nicht, du brauchst hier noch Anführungszeichen um den gesuchten Wert - der Query muss dann am Ende so aussehen: SELECT * FROM rechner WHERE `city` = 'Hof'

Aber bevor du weiter machst: beschäftige dich mit dem Thema Kontextwechsel - das was du hier machst ist nämlich richtig gefährlich!

Abgesehen mal von der Sicherheit funktioniert es jetzt einwandfrei! Danke schonmal! Mit dem Kontextwechsel muss ich mich jetzt in ruhe mal beschäftigen! Hab das zwar mal angeschaut aber ganz ehrlich da steig ich noch nicht so wirklich durch! Bin jetzt auch überhaupt kein Profi! Wollte eigentlich nur mal was ausprobieren!