Such Abfrage Probleme

evoleena

Erfahrenes Mitglied
Hallo ihr.
Habe hier ein Formular mit firma, nama und vorname. Danach kann man suchen. Problem ist aber das da nur müll rauskommt. wenn ich nach einem Vornamen suche der auch wirklich in der DB steht dann kommt ein ganz anderer name der damit nix zu tun hat!

hier ist meine Abfrage

PHP:
$anfrage = "SELECT * FROM gast WHERE name like '%$firma%' OR ansp_name like '%$nachname%' OR ansp_vorname like '%$vorname%'";
wie sollte ich es besser machen!
Oder ist die abfrage okay und ich müsste mein PHP Script umbauen?
 
Zuletzt bearbeitet:
Stimmt das ist mir noch gar nicht aufgefallen! *Blind bin*
Na da werd ich mich mal drum kümmern.

EDIT:
Habe es geändert aber die Abfrage stimmt immer noch nicht. Es kommt immer noch was verkehrtes raus!
kann es sein, das es meiner While Funtkion liegt?
PHP:
$select =mysql_db_query ($db,'SELECT * FROM gast WHERE name like "%'.$firma.'" OR ansp_name like "%'.$nachname.'" OR ansp_vorname like "%'.$vorname.'"');
while ($daten = mysql_fetch_array($select))
 
Zuletzt bearbeitet:
1. Jetzt fehlen die %-Zeichen nach den Variablen.
2. Mit wie vielen Datenbankverbindungen arbeitest du?
Wenn du nur mit einer arbeitest (so wie die meisten), dann kannst du auch [phpf]mysql_query[/phpf] statt [phpf]mysql_db_query[/phpf] benutzen.

Mach dann mal das:
PHP:
$q =mysql_query ('SELECT * FROM gast WHERE name like "%'.$firma.'%" OR ansp_name like "%'.$nachname.'%" OR ansp_vorname like "%'.$vorname.'%";');
while ($r = mysql_fetch_array($q))
    $daten[] = $r;

print_r($daten);
 
Wenn ich das mache, kommt diese Ausgabe bei raus

PHP:
Array ( [0] => Array ( [0] => 1 [Gast_ID] => 1 [1] => [name] => 
[2] => Talstein 7[adresse] => Talstein 7 [3] => 7295 [ortid] => 7295 [4]
=> [land] => [5] => [gstatus] =>[6] => Erika [ansp_vorname] =>
 Erika [7] => Müller [ansp_name] => Müller [8] =>03641558866 [tel]
 => 03641558866 [9] => [fax] => [10] => [email] => ) [1] =>
 Array ( [0]=> 2 [Gast_ID] => 2 [1] =>[name] => [2] => Dorfgasse 67
 [adresse] => Dorfgasse 67 [3]=> 3874 [ortid] => 3874 [4] => [land] 
=> [5] => [gstatus] => [6] => Hans [ansp_vorname]=> Hans [7] =>
 Schulz [ansp_name] => Schulz [8] => 565656 [tel] => 565656 [9] => 
[fax] => [10] => [email] => ) )

Ceraph hat gesagt.:
Wenn du nur mit einer arbeitest (so wie die meisten), dann kannst du auch mysql_query() statt mysql_db_query() benutzen.

Wie meinst du das eine? Eine einzige abfrage im ganzen Script?
Ne ich habe momentan drei drin, von denen glaub ich zwei identisch sind!
 
Ceraph hat gesagt.:
(...)
2. Mit wie vielen Datenbankverbindungen arbeitest du?
(...)
Verbindungen, nicht Abfragen. Wenn du nur mit einer Datenbank arbeitest, dann kannst du dir mit dem o.g. Tip ne Menge Schreiberei ersparen.

Wie du an deinem Ergebnis siehst, hast du jetzt hinter der variable $daten ein multidimensionales Array.

Das kannst du jetzt z.B. mit [phpf]for[/phpf] oder [phpf]foreach[/phpf] darstellen.
 
Okay verbindungen hab ich nur eine Danke für den hinweis!

Ja nun stehen zwei Daten in dem Array drin, das ist ja auch das Ergebnis aus der Abfrage, aber das Ergebnis ist falsch ich hatte den vornamen Hans gesucht!
Also stimmt die Abfrage ja doch nicht!
 
Lass dir bitte noch zum Test die Variablen $firma und $nachname ausgeben.

Also nach
print_r($daten);
noch ein
print_r($_REQUEST);
 
Mmh, ich seh keinen Fehler.
lass dir mal die Abfrage anzeigen:
PHP:
 $q =mysql_query ($s='SELECT * FROM gast WHERE name like "%'.$firma.'%" OR ansp_name like "%'.$nachname.'%" OR ansp_vorname like "%'.$vorname.'%";');
echo($s);
 

Neue Beiträge

Zurück