|
 |
|
| Autor |
Nachricht |
swasimodo User [User]

Anmeldung: 28.08.05 Beiträge: 16 Wohnort: Leipzig
|
Verfasst am: 29.03.2006, 05:34 Titel: Datenbankabfrage mit + und , |
|
|
Hallo,
ich habe auf meiner Homepage eine Datenbankabfrage, die nur mit einem Suchbegriff funktioniert. Ich möchte sie so umprogrammieren, dass sie auch mit zwei oder mehr Begriffen funktioniert. Bei + müssen beide Suchbegriffe in der Datenbank stehen. Bei , reicht einer der Suchbegriffe aus.
| Code: |
<FORM name="form1" method="POST" action="Bildersuche_original.php" target="Bildersuche"> <!-- php-anfrage -->
<FIELDSET>
<LEGEND class="grauerText"> Suchanfrage:<br>
</LEGEND>
<span class="kleinerText"> hier eintragen </span>
<input name="keyword" type="text" id="keyword" size="30">
</FIELDSET>
<table width="300" border="0" cellspacing="4" cellpadding="2">
<tr>
<td> </td>
<td align="right"><!-- go-button -->
<input name="submit" id="submit" type="submit" class="kleinerText" onClick="self.close();" value="go">
</table>
</FORM>
|
Wie funktioniert das? _________________ swasimodo
|
|
| Nach oben |
|
 |
Metaman Power-Poster [User]


Anmeldung: 20.11.05 Beiträge: 636
|
Verfasst am: 29.03.2006, 08:48 Titel: |
|
|
also willst Du den User die Option + und , anbieten
dann must du das Suchwort aufsplitten
das blöde ist nur das der User ja auch + und , zusammen benutzen könnte
und dann wird es etwas verzwickter
darum ist es wesentlich einfacher, wenn Du auf dieses + und , verzichtet, und statt dessen neben dem Suchfeld ein Auswahlmenü oder zwei Optionsfelder stellst mit den Optionen UND , ODER
z.b.
| Code: | <FORM name="form1" method="POST" action="Bildersuche_original.php" target="Bildersuche"> <!-- php-anfrage -->
<FIELDSET>
<LEGEND class="grauerText"> Suchanfrage:<br>
</LEGEND>
<span class="kleinerText"> hier eintragen </span>
<input name="keyword" type="text" id="keyword" size="30">
<input name="option" type="radio" value="UND" checked>
UND
<input type="radio" name="option" value="ODER">
ODER
<input name="submit" id="submit" type="submit" class="kleinerText" onClick="self.close();" value="go">
</FIELDSET>
</FORM> |
Dann als erstes den String Prüfen und alle unerwünschten Zeichen rausschmeißen und gleichzeitig auch doppelte Leerzeichen!!
| Code: | $suchwort=strip_tags($_POST['keyword']);
$suchwort= ereg_replace ("[ ]+"," ", $suchwort); |
eventuell auch noch weiterre Sonderzeichen, kommas usw, entfernen lassen
damit sollten jetzt mehre worte im String nur noch mit einem Leerzeichen getrennt sein.
diesen teilst Du dann mit explode | Code: | | $sucharray = explode(' ', $suchwort); |
danach fügst Du den Inhalt des Arrays wieder über eine for schleife zu der eigentlichen Suchabfrage zusammen
| Code: | for($x = 0; $x < count($sucharray); $x++){
$abfrage.= ($x>0)? "$option": "";
$abfrage.=" like '%".$sucharray[$x]."%' ";
} |
Die zweite Zeile hier im Code sorgt dafür das der Wert der Optionsfelder also UND oder ODER in der Abfrage angehängt wird, dies passiert aber erst ab dem zweiten Schleifendurchauf
und nun kannst du deine SQL Abfrage machen
| Code: | | select * FROM TABELLE WHERE $abfrage |
Du must das ganze natürlich noch etwas verfeinern, denn wenn jemand nur ein Suchwort benutzt und das mit einem Leerzeichen am Anfang oder ende versieht könnte es zu fehlern kommen.
aber das ist nur noch kleinkram _________________
Webmaster Lexikon
Schnäppchensuche
Wenn Du einen Clan Sponsor suchst, schreibe mich NICHT an!!!
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde
|
| Seite 1 von 1 |
|  |