[MySQL 3.23.X] Suchstring in SQL-DB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tedman72
    antwortet
    hm... vielleicht schickt ihr mal den link wo es ausführlich beschrieben wurde...


    soweit habe ich die abfrage hinbekommen, habe aber noch nen kleinen fehler:

    hier meine abfrage:

    PHP-Code:
    $var var_dump ($_POST);
        
    $query="select * from user where";
        while (list (
    $key$val) = each ($_POST))
        {
            
    $query .= " and $key=$val";
            
        }
        echo 
    "test: $query"
    klar, ist erstmal zum testen...

    der query sieht aber noch nicht optimal aus, er liest alle übergebenen variablen aus :
    PHP-Code:
    select from user where and geschlecht= and altervon= and alterbis= and suche= and rubrick= and [b]online=1[/b] and Submit=Suche starten 
    hatte auch nur einen wert übergeben. er müßte also die leeren vars überspringen bzw. auslassen. hinter dem where würde ich eine standardabfrage einbauen.

    danke übriegens für die schnelle hilfe
    Zuletzt geändert von tedman72; 03.02.2004, 17:11.

    Einen Kommentar schreiben:


  • Patrick_PQ
    antwortet
    ja, das hat natürlich was ... aber ganz weit war ich da ja auch nicht von entfernt - oder ?!

    Einen Kommentar schreiben:


  • derHund
    antwortet
    hmm,

    patricks lösung ist auch nicht noon-un-liker

    mal abgesehen davon, daß das thema erst vorgestern durchgekaut (ausführlich) wurde.

    - prüfe alle post werte auf existenz, etc.
    - die zu überprüfenden werden ala 'spalte = wert' in ein feld gepusht
    - implode (" AND ", $feld)

    dann tritt nicht wie bei patricks lösung das problem auf, daß du where 1 schreiben müßtests, um zu verhindern , daß and auf where folgt.

    Einen Kommentar schreiben:


  • Patrick_PQ
    antwortet
    ich denke, dass wird nur so gehen, wie du es versucht hast ... das mit den vielen ands ist nicht nooblike - anders bekommst du keine Verknüpfung mehrerer Kriterien hin. Höchstens, wenn du auf ein Ergebnis immer wieder ein neues Select ausführst - und das ist erstrecht nooblike.

    Ich würde folgendermaßen vorgehen:
    Post-Array mit each durchlaufen und für jedes Formularfeld eine Erweiterung an das bestehende Select anhängen.

    Z.B.:

    $query="select * from user where";
    while (list ($key, $val) = each ($_POST['rechte'])) {
    $query .= "and $key=$val")
    }

    Dazu sollten allerdings die Felder der Datenbank so heißen wie die im Form - oder andersrum.

    Einen Kommentar schreiben:


  • tedman72
    hat ein Thema erstellt [MySQL 3.23.X] Suchstring in SQL-DB.

    [MySQL 3.23.X] Suchstring in SQL-DB

    Hallo Leuts,

    habe hier schon etwas gesucht aber mal wieder nicht das richtige gefunden.

    Folgendes Prob:

    Ich möchte per Formular in meiner User-DB suchen, wäre nicht wirklich ein Problem, wenn ich aber nach mehreren Voraussetzungen suchen möchte.

    BSP:

    Ich habe ein Formular mit bis zu 7 möglichen Ergebnisseinschränkungen wie Alter (von - bis), Geschlecht, online, etc.)

    Eine einzelne Abfrage wäre ja nun kein Problem. Wenn sich die Suchabfrage aus mehreren Bedingungen zusammensetzt müßte der SELECT-String ja auch irgendwie zusammengesetzt werden, nur habe ich da noch nicht wirklich eine Lösung.

    Abfragebeispiel:

    Ich suche nun alle Frauen die online sind und ein Bild in ihrem Profil hochgeladen haben, dann sollte der STRING ja irgendwie so ausschauen:

    Aus dem Formular kommen die werte:
    $ges (geschlecht)
    $bild (suche nach datensätzen mit bild, 1 oder 0)
    $online (suche nach datensätzen mit aktuellem sessioneintrag, 1 oder 0)

    irgendwie sollte das nun so verknüpft werden:

    PHP-Code:
    SELECT FROM user WHERE geschlecht '$ges' AND bild '1' AND usersess <>'Null' 
    - wobei ich glaube dasdiese verkettung mit ANDs auch irgendwie nooblike is


    mit abfragen und schleifen finde ich es irgendwie sehr umständlich, vielleicht reicht da aber mein wissen noch nicht ganz aus.

    im prinzip will ich erkennen wieviele einschränkungen vom user gesetzt werden und aus solchen einen string zusammenbasteln.

    für tipps oder ideen wäre ich sehr dankbar...
Lädt...
X