URL: https://www.overclockers.at/coding-stuff/php-mysql-select-mit-like-und-variablen_245824/page_1 - zur Vollversion wechseln!
Hallo Zusammen.
Kann mir einer sagen wiso hier nicht funktioniert ?
Per Post werden als $Fabrikat=BMW und als $Model=5 übergeben
Code:$Hersteller = $Fabrikat." ".$Model; $sql= "SELECT * FROM Ersatzteile WHERE Fabrikat LIKE '%".$Hersteller."%' and Baugruppe = '$category'";
Hallo!
Prinzipiell sehe ich da keinen Fehler, das müßte so funktionieren.
Würde bei den von Post gelieferten Werten ansetzen, evtl. steht da ja mehr drinnen als du siehst, z.B. ein Leerzeichen hinter dem Modell. Dann spuckt die SQL Abfrage natürlich nix mehr aus.
Probier mal:
Code:$Hersteller = trim($Fabrikat." ".$Model);
Ist es bei dir sicher " " und nicht "& n b s p ;"?
Ich würde ein escape_string verwenden um eventuelle Sonderzeichen zu maskieren.
Zitat von jbHallo!
Prinzipiell sehe ich da keinen Fehler, das müßte so funktionieren.
Würde bei den von Post gelieferten Werten ansetzen, evtl. steht da ja mehr drinnen als du siehst, z.B. ein Leerzeichen hinter dem Modell. Dann spuckt die SQL Abfrage natürlich nix mehr aus.
Probier mal:Code:$Hersteller = trim($Fabrikat." ".$Model);
getestet.Code:$Fabrikat = $Hersteller." ".$Model;
Ich wuerde dir empfehlen, mit Prepared Statements zu arbeiten. Damit hast du gleich saemtliche Sicherheitsfeatures eingebaut und es ist nochdazu schoener zu lesen.
weil das SQL mit dem HTML entity "&nb sp;" nichts anfängt. es will ein leerzeichen mit einem leerzeichen vergleichen.
Das erklärts natürlich @ Umlüx. Keine Ahnung wiso ich auf die blöde Idee mit   gekommen bin 
Zitat von ObermotzIch wuerde dir empfehlen, mit Prepared Statements zu arbeiten. Damit hast du gleich saemtliche Sicherheitsfeatures eingebaut und es ist nochdazu schoener zu lesen.
  ist ja ein HTML Code, die DB wandelt den nicht um.
Zitat von DKCHoh ja, da kann man nur die edith klinger zitieren: BITTE BITTE BITTE! little bobby tables lässt grüssen
Also ich sags nochmal anders: Wenn das ein Uebungs-Projekt ist oder aehnlich, dann ist das ok. Aber wenn das Ding in irgendeiner Weise produktiv gehen soll oder mal im Internet oder im Intranet steht -> Prepared Statements, jetzt.
ZitatWenn das ein Uebungs-Projekt ist oder aehnlich, dann ist das ok.
Wollt schon dazu editieren, dass es wohl besser is, wenn ers gleich richtig lernt.
Ist wie gesagt im Moment nur ein kleines Nebenprojekt ob alles so machbar ist wie geplant.
Wobei die Umstellung garnicht so gross ist wie ich gerade eben gesehen habe.
die var '$Hersteller' hast du anders eingebunden als '$category'.
auch wenn's bei mir ne weile her ist, dürfte das iirc das/ein problem sein.
fixed:
Code:$sql= "SELECT * FROM Ersatzteile WHERE Fabrikat LIKE '%".$Hersteller."%' and Baugruppe = '".$category."'";
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025