PHP & SQL Suchfunktion !

romeodadon

Angesehenes Mitglied
Hallo Leute,
ich brauche einen Denkhilfe oder eine kleine Hilfe.

Ich schildere hier mal den Ablauf:

Ich habe eine Suchmaske wo mann ein "Stichwort" eingibt und ein zweites Feld wo mann dann den "Ort" eingibt.

Jetzt möchte ich das er mir aus meiner Datenbank alles ausspuckt was das Suchwort in einer bestimmten Zeile hat.
" Das übrigens habe ich hingekreigt! "
smile.gif


Mein Problem ist jetzt das er das ganze eingeschränkt werden soll auf den Ort der eingegeben worden ist.

Also meine Finale Frage, Wie muss ich folgenden Code erweitern damit das Funktionert?

CODE
$was      = $_POST  ['was'];
$wo       = $_POST  ['wo'];

sql ("SELECT * FROM VZ WHERE Cat1 LIKE '%$was%'");



Habe einige Sachen versucht aber es hat nicht hingehauen.
Hoffe jemand kann mir weiterhelfen.


Gruss
O4Y
 
Bau dir am besten anstatt 2 Input felder, 1 Input feld und eine Selectbox.
Inputt feld kann er sein beliebiges Suchwort eingeben und in der Selectbox wählt er dann die Kategorie aus, welche du Hardcodiert/dynamisch eingegeben hast.

Dann eine Switch Case abfrage und dann kannst du am ehesten dein SQL zusammenstellen.

Bsp.

im SELECT hast du auto, pflanzen, etc.

dann

SWITCH($was){
case "auto":
$sql ("SELECT * FROM $was WHERE Cat1 LIKE '%$was%'" OR Cat2 LIKE '%$was%'");

case "pflanzen":
$sql ("SELECT * FROM $was WHERE Cat4 LIKE '%$was%'" OR Cat5 LIKE '%$was%'");
}

Jenach dem erstetzt du VZ oder Cat1 mit $wo.
Ich würde aber eher meinen das VZ mit $wo zu erstetzen.

Ist nur ganz grob beschrieben, hoffe aber du verstehst was ich meine.
Ich kenne deine DB struktur nicht, deswegen ist es auch schwer eine genaue Antowort zugeben.

Grüsse, Crazy
 
Hmm habe das nicht ganz verstanden oder ich habe mich falsch ausgedrückt.

Also ich habe 2 Inputfelder.
Input feld 1 = Suchwort z.B. Auto
Input feld 2 = Ort z.B. München

Diese schreibt mann rein und klickt auf Suchen.

Nun soll er mit alle Ergebnisse Raussuchen in dem beide Kriterien Übereinstimmen
dass heisst alle Autos aus München, sonst keine.

Die tabelle Sieht so aus.

VZ:
--------------------------------------------------------------------------------
Firma
Ort <- Das ist die Spalte in der er den Ort suchen soll.
Strasse
Tel
Fax
Internet
PLZ
Cat1 <- Das ist die Spalte in der dann das Suchwort suchen soll.
--------------------------------------------------------------------------------

Das ist jetzt mein Aktueller Code:
CODE
$was = $_POST ['was'];
$wo = $_POST ['wo'];

sql ("SELECT * FROM VZ WHERE Cat1 LIKE '%$was%' OR Firma LIKE '%$was%' AND WHERE Ort LIKE '%$wo%' ");



Und das ist die Fehlermeldung:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Ort LIKE '%frankfurt%'' at line 1

 
CODE "SELECT * FROM VZ WHERE Cat1 LIKE '%$was%' OR Firma LIKE '%$was%' AND Ort LIKE '%$wo%' "


Einmal WHERE ist genug ...
wink.gif


Cheers,
den.
 
AHHHHHH OK SUPER !
Das hat Funktioniert!


Jetzt noch ne andere Frage hat jemand ein Script zur ausgabe solcher Befehle.

Das heisst das das Ganze was da rausgegeben wird schön untereinander angezeigt wir in einer schönen Strucktur ?
 
CODE
$sql = "SELECT * FROM VZ WHERE Cat1 LIKE '%$was%' OR Firma LIKE '%$was%' AND Ort LIKE '%$wo%' ";
$res = mysql_query($sql);
<table border="1">
<?
while($searchArr = mysql_fetch_array($res)){
?>
<tr>
<td>
<? echo $serachArr['Firma']; ?>
</td>
<td>
<? echo $serachArr['Ort']; ?>
</td>
</tr>
<?
}
?>
</table>


So inetwa kannst du dass ganze aufbauen

Grüsse, Crazy
 
So habe es jetzt so gemacht:

CODE
<?
require_once ('inc.db.php');

$was = $_POST ['was'];
$wo = $_POST ['wo'];
if (($was == '') OR ($wo == '')) {
echo "<CENTER> Bitte füllen Sie alle Suchkriterien korrekt aus !</CENTER><br><br>";
$reg_error=true;
echo '<CENTER> <a href="javascript:history.back()">Zurück</a> </CENTER>';}
?>

<?
$sql = "SELECT * FROM VZ WHERE Cat1 LIKE '%$was%' OR Firma LIKE '%$was%' AND Ort LIKE '%$wo%' ";
$res = mysql_query($sql);

echo "<table width='200' table border='1'>";

while($searchArr = mysql_fetch_array($res)){

echo"<tr>";
echo"<td>";
echo $serachArr['Firma'];
echo"</td>";
echo"<td>";
echo $serachArr['Ort'];
echo"</td>";
echo"</tr>";
}
?>
</table>



Leider zeigt er mir nur eine Leere Tabelle an.
Wo liegt der Fehler?
sad.gif
 
Zurück
Oben