php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
auswahl suchfunktion


 
in-power
26-01-2004, 14:03 
 
hallo,
kann mir jemand helfen. habe die suchfunktion hier schon genutzt. doch konnte ich leider nichts passendes finden.

Ich habe eine suche eingebaut. da kann man dann in zwei felder die suche einschränken. uns zwar nur auf bestimmte kategorien und bestimte tabellen. doch was nicht geht, ist die auswahl des gesammte inhaltes der tabelle oder die auswahlt aller tabellen, von denen es fünf gibt. aber eine ist die admin-tabelle. diese sollte nicht mit ausgelesen werden. also mein problem ist, wie kann ich den ganzen inhalt der tabelle durchsuchen lassen und wie kann ich mehrere tabellen einbinden. die einzelauswahl lauft schon.

hier mein php-script:
/*auswahl der suchbegrife*/
if ($bereich==1)
$eingabe=all;
elseif ($bereich==2)
$eingabe=name;
elseif ($bereich==3)
$eingabe=plz;
elseif ($bereich==4)
$eingabe=spezial1;

/*auswahl der tabelle*/
if ($daten==5)
$bank=all;
elseif ($daten==6)
$bank=hund;
elseif ($daten==7)
$bank=katze;
elseif ($daten==
$bank=tiger;
elseif ($daten==9)
$bank=elefant;
/*ende des auswahl*/
/

1.also, wie kann ich bei $eingabe==1 sagen, die gesamte tabellle durchsuchen??
2. wie kann ich bei $daten==5 sagen alle vier tabellen duchsuchen??

währe für hilfe echt dankbar!!!!!!!!

 
Titus
29-01-2004, 12:11 
 
Original geschrieben von in-power
[B]1.also, wie kann ich bei $eingabe==1 sagen, die gesamte tabellle durchsuchen??
2. wie kann ich bei $daten==5 sagen alle vier tabellen duchsuchen?
ich schätze mit 1. meinst du "alle felder durchsuchen2"

1.
// Auswahl der Suchfelder
if ($bereich==1)
$eingabe=array ('name', 'plz', 'spezial1');
elseif ($bereich==2)
$eingabe=array('name');
elseif ($bereich==3)
$eingabe=array('plz');
elseif ($bereich==4)
$eingabe=array('spezial1');

// where-Klausel zusammensetzen
$tmp = array();
foreach ($eingabe as $spalte)
$tmp[] = "$spalte like '%". mysql_escape_string($suche). "'";
$str_where = implode(' or ', $tmp);


2. würde ich so lösen: alle Daten in einer Tabelle sammeln und über eine zusätzliche Spalte (vom Typ enum oder tinyint) unterscheiden, um welches Tier es sich handelt. Dann kannst du für den Tiertyp ganz einfach die where-Klausel erweitern.

wenn daten==5: keine änderung
sonst: $str_where = "($str_where) and neuespalte='$bank';
($bank bei enum, $daten bei int)


und ganz allgemein: Zeichenketten machen sich in Anführungszeichen gut; das beugt Fehlermeldungen vor!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:13 Uhr.