phpbar.de logo

Mailinglisten-Archive

[php] Übersicht Suchergebnisse mit PHP erstellen

[php] Übersicht Suchergebnisse mit PHP erstellen

Sebastian Mendel lists at sebastianmendel.de
Die Mai 22 09:44:29 CEST 2007


Marita Betz schrieb:

> Also ich habe eine Suchmaske da kann frei nach Name des Objekts oder/und
> nach plz und Ort gesucht werden (PlZ und Ort sind ein Feld). Zusätzlich
> habe ich Checkboxen in dem Formular wo man mehrere Sachen gleichzeitig
> anklicken kann, dort
> [...]
> 
> Wie prüfe ich ab, was jetzt eingegeben wurde ?
> 
> Bis jetzt habe ich folgendes drin in meinem PHP-Skript:
> 
> <?php
> 
> function Text_sichern($text)
> {
>     $text = strip_tags($text); //entfernt HTML-Code/
>     $text = stripslashes($text); //entfernt Backslashes /
>     $text = htmlentities($text, ENT_QUOTES);

normalerweise speichert man Text in einer DB nicht mit HTML Entities, sowas
wird aerst bei der Ausagbe gemacht, wegen Speicherplatz und Kompatibilität,
und du nie weißt ob du in Zukunft nicht doch mal woanders hin ausgeben
willst als nur zum Browser (PDF, ...)

aber wenn die Sachen eh schon mit HTML Entitites in der DB liegen hast du
natürlich keine Wahl hier an dieser Stelle ...

> 
>     return $text;
>        
>     }
>    
> if ($_POST["Suchen"] === "Suchen")
> {
>   $namedesObjekts = Text_sichern($_POST['NamedesObjekts']);
>     $plzort = Text_sichern($_POST['plzort']);
> 
> Mir ist nicht klar wie ich jetzt weitermachen muss?

$object_types = array(
    'Ferienwohnung' => '[Wert für Ferienwohnung in Feld Objektart]',
    'Hotel' => '[Wert für Hotel in Feld Objektart]',
    ...,
);

$selected_object_types = array();

foreach ($object_types as $each_form_name => $each_value) {
    if (isset($_REQUEST[$each_form_name]) {
        $selected_object_types[] = '"' . $each_value . '"';
    }
}

> Muss ich dann gleich  sowas schreiben?
> 
> $abfrage = "SELECT * FROM tbloe_objektart WHERE ( Objektart LIKE
> '%".mysql_real_escape_string($_POST['Hotel'])."%')";
>     $result = mysql_query($abfrage);
> while( $row = mysql_fetch_array($result) )

das hängt von der Struktur deiner Tabelle ab ... wie ist die denn?


> Ich muss ja wahrscheinlich die Befehle irgendwie schachteln mit if und
> else, weil es können ja mehrere Sachen gleichzeitig angegeben werden. Es
> kann ja sein, dass jemand nur die Plz angibt und dann noch Hotel und
> Pension angehakt hat oder wie auch immer.

z. B.:

$objects = implode('), (', $selected_object_types);
$sql = '... WHERE Objektart IN (' . $objects . ') ...';


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive