phpbar.de logo

Mailinglisten-Archive

[php] Übersicht Suchergebnisse mit PHP erstellen

[php] Übersicht Suchergebnisse mit PHP erstellen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Mai 22 09:29:06 CEST 2007


Hallo Marita,

Am Dienstag, 22. Mai 2007 schrieb Marita Betz:
> 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
> stehen die Checkboxen:

[...]

> Als erstes soll ausgegeben werden, welche Kategorie ausgewählt wurde,
> das heißt welche Checkboxen angeklickt wurden. Leider darf ich diese
> lt. meinen Auftraggeber nicht als Array machen.

hat er dafür einen vernünftigen Grund genannt? Aus meiner Sicht sollten 
die zusammengehörenden Checkboxen einen Array bilden. Das sollte 
alleine schon aus dem Grund so sein, weil Du dann nicht für jede neu 
hinzukommende Kategorie Dein Skript manuell anpassen mußt.

> Sonst hätte ich diese ja mit einer Schleife durchgehen können.

Eben.

> Dann soll ausgegeben werden wieviele Treffer erzielt wurden und
> dann eine Liste mit der Adresse usw von den einzelnen Hotels oder was
> halt ausgewählt 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);
>
>     return $text;
>
>     }
>
> if ($_POST["Suchen"] === "Suchen")
> {
>   $namedesObjekts = Text_sichern($_POST['NamedesObjekts']);
>     $plzort = Text_sichern($_POST['plzort']);
>     $hotel = $_POST['Hotel'];
>     $ferienwohnung = $_POST['Ferienwohnung'];
>     $pension = $_POST['Pension'];
>     $sonstUebernachtung = $_POST['sonstUebernachtung'];
>     $Arzt = $_POST['Arzt'];
>     $Apotheke = $_POST['Apotheke'];
>     $Cafe = $_POST['Cafe'];
>     $Restaurant = $_POST['Restaurant'];
>     $Gaststaette = $_POST['Gaststaette'];
>     $Parkplatz = $_POST['Parkplatz'];
>     $Kultur = $_POST['Kultur'];
>     $Wellness = $_POST['Wellness'];
>     $Freizeitangebot = $_POST['Freizeitangebot'];
>     $Sonstige = $_POST['Sonstige'];
>
> Mir ist nicht klar wie ich jetzt weitermachen muss?
>
> 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) )

Da kann man schon sehen, zu welchem Murks das führt, wenn man für die 
Kategorien keinen Array verwendet... Wenn Du einen Array verwendest, 
kannst Du das viel generischer zusammenbauen.

> 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.

Mit if-Abfragen gucken, was übergeben wurde, und nach einer Prüfung die 
Angaben in den SQL-Befehl einbauen.

> P. S. Kennt sich jemand von Euch mit Ubuntu und PEAR aus.
>
> Ich arbeite auf Ubuntu 6.0.6 und habe PEAR installiert. Wie kann ich
> z. B. die Cache-Light-Funktion nutzen?

Worum geht es denn? Bzw. was hat das mit Ubuntu und PEAR zu tun?

Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive