[PHP/MySQL] problem mit SQL / PHP platzhaltersuche [closed]

Ares

Well-known member
ID: 54911
L
5 Mai 2006
74
4
Morgen zusammen,

kann mir mein problem leider nicht erklären
ich möchte eine DB suche mit platzhaltern nutzen also %string%
klappt auch, bis auf abfragen die sonderzeichen zb - oder _ beinhalten
wenn ich dies in phpmyadmin abfrage funktioniert es einwandfrei
nur nicht übers php script, dann erhalte ich keine ergebnisse

PHP:
SELECT name FROM table where name like '%$suchen%'

ich weis es ist sonntag, aber vielleicht kann mir doch einer helfen
 
Zuletzt bearbeitet:
PHP:
mysql_query("SELECT name FROM table WHERE name LIKE '%".$suchen."%'");

So müsste es passen

Btw.
scheiß auf Sonntag wir sind immer im Dienst ^^
 
sag uns doch mal was mysql_error();

und var_dump($suche); ergibt

*edit
das was Biehler mein weis ich nicht, aber wenn dem so ist hilft dier dieser Query
PHP:
mysql_query("SELECT name FROM table WHERE name LIKE '%".str_replace('_', '\_', $suchen)."%'");
Wurde von ZeroCCC, nicht bestätigt.
 
Zuletzt bearbeitet:
var_dump sagt es ist ein string und es gibt keine fehler meldungen
was mich am meistend irritiert ist das
wenn ich z.B.
PHP:
SELECT name FROM table where name like '%r-s%'
über das script suchen lasse es keine ergebnisse gibt, wenn ich aber im sql menu von phpmyadmin den befehl eingebe ich ein ergebniss erhallte
 
Genauso ein Problem habe ich jetzt auch und ich weis nicht warum, in dem Fall kann ich dir leider nicht weiterhelfen. Bei mir ist es aber genauso Nur der Query ist komplizierter und ohne LIKE %string%. Ich sitze vor meinem jetzt auch schon ne halbe Stunde. Heut ist halt nen strange Day ;)
 
var_dump sagt es ist ein string und es gibt keine fehler meldungen
was mich am meistend irritiert ist das
wenn ich z.B.
PHP:
SELECT name FROM table where name like '%r-s%'
über das script suchen lasse es keine ergebnisse gibt, wenn ich aber im sql menu von phpmyadmin den befehl eingebe ich ein ergebniss erhallte


dein php code drum rum auch richtig? zur richtigen datenbank verbunden?
 
Danke ZeroCCC das war es bei mir ich habe meine DB doppelt udn habe die Spalte in der ersten snatt in der zweiten TestDB geändert. Ablso wird es bei dir warscheinlich auch irgendwas in der Richtung sein.

*sorry für OT
 
nein die vernindung bzw tabelle ist korregt
wenn ich nach strings ohne minus oder unterstrich suche klappt alles
 
PHP:
echo "<form action=suche.php method=POST>
namen suche: <br>
<input type=text name=suchen><br>
<input type=submit name=button value=suche>
</form>";


if (isset($suchen)){
$abfrage =  "SELECT name FROM table where name like '%$suchen%' ";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)){
echo $name = $row->name;
}

}
 
ich hab jetzt nur mal den teil des scripte genommen den ich gepostet habe
der funktioniert wie er soll, jetzt muß ich mal sehen was am rest des scriptes falsch ist da es im ganzen nicht läuft
danke erstmal für alle die geholfen haben
 
hab den fehler gefunden

ich wollte mit

$res=@mysql_num_rows($ergebnis);

abfragen ob es ein ergebniss gibt und nur wenn ja dann die ausgabe machen
leider war hier das ergebnis immer 0
keine ahnung warum ist aber auch egal da es jetzt funktioniert