Multiple Datenbank Abfrage

PHP:
if (isset($_POST['kategorie']) 
        && count($_POST['kategorie'])==1 
        && empty($_POST['kategorie'][0])) {
    $kategorien="";
} else {
    $kategorien = "`Kategorie` IN "
        ."('".implode("','",$_POST['kategorie'])."') AND ";
}

//...

mysql_query("SELECT *
FROM `gastgeber`
WHERE ".$kategorien."`Preis` <=$auswahl_preislimit AND `Personen` >=$auswahl_personen AND `Haustiere`
LIKE '%$auswahl_haustiere' AND `Fruehstueck`
LIKE '%$auswahl_fruehstueck' ORDER BY `Preis` ASC LIMIT 0 , 30 ")

Übrigends greifst Du auf die Arrayelemente mit Konstanten zu. Auch wenn das meistens funktioniert, wäre es richtig, die Arrayindizes in Anführungszeichen zu schreiben, da die einzelnen Arrayelemente nicht mit Konstanten, sondern mit Strings indiziert sind.

Gruß hpvw
 
Hallo

Ich möchte mein vorheriges Thema mal erweitern und folgende Frage stellen.

Ich möchte die Ausgabe so realisieren das mir nur die ersten 20 Suchergebnisse angezeigt werden. Wie kann man das machen?
 
Da bin ich jetzt etwas verwirrt : Du benutzt doch längst (Achtung, Pseudo-SQL:) )
SQL:
SELECT ... LIMIT start,anzahl;

In vereinfachter Form kann man auch diese Syntax schreiben:
SQL:
SELECT ... LIMIT anzahl;

Damit begrenzt du die Anzahl der Ergebnisdatensätze auf den Wert anzahl. Willst du wirklich nur die ersten 20, kannst du die untere Syntax benutzen. Ansonsten taugt die obere Syntax für die beliebte "Blätterfunktion".

Ceppi
 
Ja stimmt! Wieder nicht zu ende gedacht!

ich lasse ja jetzt nach Preis sortieren, nimmt er dann die ersten 30 Einträge und ordnet die nach preis oder sucht er dann die Datenbank durch und zeigt die 30 billigsten an!

Gruss

TG
 
Bei LIMIT geht es um die Anzahl der Ergebnisdatensätze. Dazu müssen natürlich erst einmal die gesamten in Frage kommenden Datensätze sortiert werden - danach geht erst daran, die Datensätze zurückzuliefern.

Irgendwie wäre es ja sonst auch nicht besonders hilfsreich, oder?
 
Hallo

ja klar! Und über mysql_num_rows() kann ich ja theoretisch die Datensätze auszählen die drin sind in der Datenbank!

Dann müsst ich nur noch ne Variante bauen, das dann bei der Ausgabe unten angeziegt wird, die nächsten 30 Datensätze oder so.

Wie macht man sowas am sinnvollsten programmiertechnisch?

Gruss

Thomas
 
Danke für die Antworten,

habe es heute alles hingebastelt, auch mit einer Blätterfunktion! Danke für die Hilfe!

Gruss

Thomas
 

Neue Beiträge

Zurück