Such Abfrage Probleme

PHP:
SELECT * FROM gast WHERE name like "%%" OR ansp_name like "%%" OR ansp_vorname like "%hans%";

Das haut hin
 
Die %% könnte ein Problem geben.
Teste noch mal so zur Sicherheit:
PHP:
 $q =mysql_query ($s='SELECT * FROM gast WHERE ansp_vorname like "%'.$vorname.'%";');
echo($s);

Wenns dann keine Probleme gibt, weiß ich die Lösung.
 
evoleena hat gesagt.:
[6] => Hans [ansp_vorname]=> Hans
Wie bitte? Wie geht das denn?

Naja, jetzt gehn wir die Abfrage lieber direkt testen.
Gib bitte in phpMyAdmin oder mysql-front oder so im query fenster einmal

SELECT * FROM gast WHERE name like "%%" OR ansp_name like "%%" OR ansp_vorname like "%hans%";

und einmal

SELECT * FROM gast WHERE ansp_vorname like "%hans%";

ein.

Wie sind die Ergebnisse?
 
Ich habs gerade bei nem Projekt von mir getestet. WHERE feld LIKE "%%" bewirkt, daß er alles findet.
Also darf dies nur eingebaut werden, wenn sie vorhanden sind:
PHP:
$likes = array();

if($firma) {
    $like_firma = 'name LIKE="%'.$firma.'%"';
    array_push($likes,$like_firma);
   }
if($nachname) {
    $like_nachname = 'ansp_name  LIKE="%'.$nachname.'%"';
    array_push($likes,$like_nachname);
   }
if($vorname) {
    $like_vorname = 'ansp_vorname  LIKE="%'.$vorname.'%"';
    array_push($likes,$like_vorname);
   }

$likes = implode(' OR ',$likes);

 $q =mysql_query ($s='SELECT * FROM gast WHERE '.$likes.';');
while ($r = mysql_fetch_array($q))
    $daten[] = $r;

print_r($daten);
 
was bedeutet die If Anweisung if ($firma)
wird damit abgefragt ob in der Variable was dirn steht?

hab das von dir mal eingebaut!
da kommen wieder die netten meldungen mysql_fetch_array(): supplied argument is not a valid MySQL result resource in und $daten kennt er nicht!

Was bewirkt das
PHP:
$likes = implode(' OR ',$likes);
mit implode für ma ja was zusammen, wieso Or und llike?
 
Zuletzt bearbeitet:
Zurück