Ankündigung

Einklappen
Keine Ankündigung bisher.

wie gebe ich den $query mit ?

Einklappen

Neue Werbung 2019

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

  • wie gebe ich den $query mit ?

    möchte den $string richtig hinbekommen aber komme nicht drauf
    Die verfluchsten AND machen mir probleme zwischen den einzelnen variablen.

    1kategorie
    2bundesland
    3stadt
    4suchstring

    bei diesen 4 variablen ist alles möglich. soll gesucht werden mit.
    kategorie mit bundesland mit stadt und mit suchtextstring.

    der suchtextstring funzt.

    Das problem ist das AND?




    1kategorie
    2bundesland
    3stadt
    4suchstring


    $query = "SELECT id,name FROM TABLE where $string GROUP BY date";

    so wahrscheinlich nicht. wie hier unten
    $AND3 = "AND3";
    if ( $such == "") $AND3 ="";
    $AND2 = "AND2";
    if ( $stad == 0) $AND2 ="";
    $AND1 = "AND1";
    if ( $bund == 0) $AND1 ="";

    $string = $kategorie.$AND1.$bundesland.$AND2.$stadt.$AND3.$s uchstring;

    (naja $kategorie braucht keinen string weil er am anfang steht)

  • #2
    1. was steht denn in $AND???

    and ist eigentlich ein Reserviertes Wort. Versuch mal eine andere Variablenbezeichnung!

    So richtig hab ich dein Problem noch nicht verstanden Versuch es bitte noch mal anders zu schildern. Danke

    Kommentar


    • #3
      ich kriege 4 werte per formular übermittelt.

      kategorie, bundesland, stadt, suchtext

      werden angenommen alle 4 Werte gewählt.
      aus diesen allen vier dinger muß eine $string für die sql entstehen.

      beispiel:
      kategorie = 1, bundesland = 1, stadt = 1, suchtext == "such blabla"

      so müßte der $string so heißen:
      "kate = 1 AND bund = 1 AND stadt = 1 AND (name like '%such blabla% ')"

      mein problem sind die AND dinger:

      es kann auch mal nur die kategorie gewählt werden:
      dann heißt es:
      "kate = 3"

      oder kategorie mit suchstring:
      "kate = 5 AND (name like '%such blubla%)"

      oder kategorie stadt und mit suchstring:
      "kate = 5 AND stadt = 1 AND (name like '%such blubla%)"

      oder nur auch stadt und suchstring oder so und so.
      bei diesen vielen kombinationen. suche ich eine möglichkeit dieses AND eingrenzung richtig hinzubekommen. Das problem ist das das AND vor der nächsten variable stehen muß damit es eingegrenzt werden kann.

      der string mit den richtigen AND'S kommt dann hier rein:
      $query = "SELECT id,name FROM TABLE where $string GROUP BY date";

      grüße

      Kommentar


      • #4
        warum hängst du die ands hinten an den string??

        Häng sie doch vorn ran! Beim 1. lässt du es eben einfach weg.

        Kommentar


        • #5
          mach ne abfrage auf kategorie, bundesland, stadt und suchtext. jeweils
          einzeln. if( .. ) .. if (... ). ... usw.

          wenn die abfrage true ist, dann schreibste deinen suchbegriff in nen array.
          dieses array fügst du nachher mit implode() bzw join() zusammen. dann
          kriegste genau das was du haben möchtest.

          Kommentar


          • #6
            also es gibt dann theoretisch 16 möglichkeiten.

            1111
            1110
            1101
            1100
            1001
            1010
            1001
            1000
            0111
            0110
            0101
            0100
            0011
            0010
            0001
            0000

            überall wo eine 1 und 1 steht setze ich AND dann funtzt es auch. jemand eine besseres idee?

            Kommentar


            • #7
              if( .. ) .. if (... ). ... usw.

              wenn die abfrage true ist, dann schreibste deinen suchbegriff in nen array.
              dieses array fügst du nachher mit implode() bzw join() ??

              z.B. ?

              aber thanx ich beiße mich da schon durch

              Kommentar


              • #8
                PHP-Code:
                $where = array();

                if( !empty(
                $variable1) )
                  
                $where[] = "variable1 = 1";

                if( !empty(
                $variable2) )
                  
                $where[] = "variable2 = 1";

                $where implode' AND '$where ); 

                Kommentar


                • #9
                  @stef

                  der Code war so gut das es mich richtig umgehauen hat.

                  hätte nie gedacht das es so kurz geht. Das sprengt meine wahre Vorstellungskraft.

                  gruß

                  Kommentar


                  • #10
                    es geht auch noch kürzer je nachdem wie sich deine abfragen und variablen-
                    namen gruppieren lassen. aber das ist auf jeden fall mal der ansatz.

                    Kommentar

                    Lädt...
                    X