php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.01.2006, 15:25  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard Suchen / Filtern mit mehreren Abfragen (optional)

Hallo,

ich habe ein Problem mit einer Art Filterfunktion.
Ich habe 7 Pulldown Menus mit denen ich Daten aus einer DB Filtern möchte.
Das Problem ist, dass die Pulldowns Optional sind.
Das heisst man muss nicht alle Pulldowns auswählen.
Ich habe die Abfrage mit AND und mit OR Probiert aber ich bekomme nicht die Ergebnisse die ich will. Ich habe mal wo gelesen das man die WHERE's auch in klammern setzen kann aber das ging dann auch nicht so wie ich will.

Hier mal ein Beispiel wie ich es bis jetzt versucht habe.

PHP-Code:
$result=dbquery("SELECT nickname FROM members WHERE nickname != 'guest' AND approved='Y' 
//Jetzt erfolgen die Pulldowns ####
AND countryiso='$countryiso' 
AND first_language='$first_language'
AND occupation='$occupation'
AND sector='sector'
usw...

ORDER BY nickname"
,$hd_main);


// Das Ergbenis ausgeben!

    
if (isset($submit)) {
                    
for (
$i=0;$i<dbnum_rows($result);$i++) {
    
$nickname=dbresult($result,$i,"nickname");
    echo 
"<td><input type=\"checkbox\" name=\"nickname[]\" value=\"$nickname\">$nickname</td>";
    if ((
$i+1) % ==0) {
    echo 
"</tr>\n<tr>";
      };  
};   
        }; 
Solange ich alle Pulldowns auswähle geht's ohne Probleme.
Wähle ich zb. nur 3 Pulldowns dann bekomme ich gar kein Ergebnis.
wizzardxx ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.01.2006, 15:38  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du willst ja offenbar User auswählen (Stadt, Alter, ..) nehme ich an. Die Verknüpfungsbedingung wäre wohl demnach AND.
Und woran hängst du jetzt genau?
Zergling-new ist offline   Mit Zitat antworten
Alt 28.01.2006, 15:49  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Das Problem ist das wenn ich nicht aus JEDEM Pulldown etwas auswähle ich kein Ergebniss erhalte obwohl Treffer vorhanden sein müssten.

Die Pulldowns wo ich nichts ausgewählt habe die sollen bei der Abfrage ignoriert werden.

Beispiel:
1.Pulldown --> Land "Germany" ausgewählt.
2.Pulldown --> Beruf "Lehrer" ausgewählt.
3.Pulldown --> Stadt "-- --" nichts ausgewählt.
4 - 7 Pulldowns auch nichts ausgewählt.

Jetzt sollte in der DB nur nach user gesucht werden die in Ihrer Anmeldung als Land Germany und als Beruf Lehrer
angegeben haben und entsprechend angezeigt werden.
Alle anderen Pulldowns sollen ignoriert werden da ich bei denen ja nichts ausgewählt habe.
wizzardxx ist offline   Mit Zitat antworten
Alt 28.01.2006, 15:52  
Gast
 
Beiträge: n/a
Standard

Musste etwas zurechtbasteln was je nachdem was ausgewählt wurde, dann WHERE übergeben wird.

$wquery = " nickname != 'guest' AND ";

if ($sector) $wquery .= " sector='sector' AND ";
...

SELECT ... WHERE ".$wquery." AND approved='Y' ...

oder so ähnlich ...
  Mit Zitat antworten
Alt 28.01.2006, 16:48  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

CIX88

Habe da mal was nach deinem Beispiel versucht zu basteln.
Jetzt bekomme ich allerdings gar nichts mehr ausgelesen.

In einem anderen Forum habe ich das hier gefunden:
PHP-Code:
$where='';
if (isset(
$_POST['anz_plz']))
   
$where.="anz_plz='".$_POST['anz_plz']."' AND ";
if (isset(
$_POST['anz_ort']))
   
$where.="anz_ort='".$_POST['anz_ort']."' AND ";
... 
//alle deine Felder
if (isset($_POST['anz_rubrik']))
   
$where.="anz_rubrik='".$_POST['anz_rubrik']."' AND ";
$where=substr($where,0,strlen($where)-4);
$abfrage="SELECT * FROM anzeigen WHERE $where ORDER BY anz_datum DESC"
Wenn ich das auf meine Daten anpasse stehe ich wieder vor dem gleichen Problem.
Wenn ich nur ein Pulldown auswähle erhalte ich gar keine Ausgabe. Bei allen funktioniert es. hmmmm....
wizzardxx ist offline   Mit Zitat antworten
Alt 28.01.2006, 16:54  
Gast
 
Beiträge: n/a
Standard

Beachte das dann am Ende nicht mehr AND vorkommen sollte.
Überprüge ob $where von der Syntax stimmt ...
  Mit Zitat antworten
Alt 28.01.2006, 17:18  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

$where stimmt nicht von der Syntax her.

PHP-Code:
$result3=dbquery("SELECT nickname FROM members WHERE nickname != 'guest' AND approved='Y' 
AND "
.$where."
ORDER BY nickname"
,$hd_main); 
Das AND am ENDE hatte ich rausgenommen.
Allerdings bekomme ich dann wieder gar nichts augegeben selbst wenn ich alle Pulldowns auswähle. Leider ist das Ergebnis immer noch das selbe.


Was hat es eigentlich hiermit auf sich:

$where=substr($where,0,strlen($where)-4);
wizzardxx ist offline   Mit Zitat antworten
Alt 28.01.2006, 18:40  
Benutzer
 
Registriert seit: 26.09.2003
Beiträge: 98
wizzardxx
Standard

Hat sich erledigt. Jetzt funzt es.
!empty war die Lösung!

PHP-Code:
$where='';
if (!empty(
$_POST['countryiso']))
   
$where.="countryiso='".$_POST['countryiso']."' AND ";

if (!empty(
$_POST['first_language']))
   
$where.="first_language='".$_POST['first_language']."' AND ";
   
   
$where=substr($where,0,strlen($where)-4); 
Danke für die Unterstützung CIX88
wizzardxx ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PDO und parallele Abfragen Normalo PHP Tipps 2008 1 09.06.2008 12:39
PHP bzw. mysql abfragen optimieren Kori Datenbanken 3 26.09.2007 21:02
Verständnisfrage: Aufruf von mehreren Usern vegeta PHP Tipps 2006 2 02.06.2006 15:39
mehrere Abfragen (Selects) verbinden???? CIMM Datenbanken 15 03.05.2006 18:59
Datentyp abfragen PHP Tipps 2006 7 24.02.2006 15:53
[Erledigt] 204 077 15-4 in DB mit WHERE als 204077154 abfragen Datenbanken 6 24.01.2006 11:47
SQL - Eine Spalte aus mehreren Tabellen abfragen PHP Tipps 2005-2 4 10.10.2005 15:24
Suche Script zum Abfragen von Inhalten einer anderen Seite Beitragsarchiv 7 26.09.2005 19:21
[Erledigt] Dateiendung abfragen PHP Tipps 2005-2 6 18.08.2005 17:11
Text aus plain text datei filtern PHP-Fortgeschrittene 7 19.07.2005 15:59
Funktionsparameter optional Orolhawion PHP-Fortgeschrittene 6 10.05.2005 14:08
[Erledigt] MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53
[Erledigt] platzhalter auch bei mehreren abfragen Datenbanken 5 15.02.2005 11:37
[Erledigt] Löschen in mehreren Tabellen gleichzeitig Datenbanken 2 05.12.2004 00:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php suche filtern, mit pulldown filtern php, optional suchen, query against und oder

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.