alle auslesen aus db

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • alle auslesen aus db

    hallo,

    ich mache eine abfrage über dropdownboxen.

    nun möchte ich aber auch auswählen können, das er alle anzeigen soll. was für ein value nehme ich dafür?

    PHP Code:


    <select name="suchkat" style="font-family: Arial; font-size: 8pt">
                              <option>Service</option>
                              <option value="">------------------------------
    ---------------------------</option>';
                                  <?
                                      $query = mysql_query ("SELECT * FROM $navtab
    WHERE unterkat='0' ORDER BY bezeichnung ASC",$connect);
                                      while ($kat = mysql_fetch_array($query))
                                      {
                                      $field0 = $kat["katid"];
                                      $field2 = $kat["bezeichnung"];
                                      $sel = $field0 == $suchkat ? 'selected' : '';
                                      print ("<option value=\"$field0\" $sel>$field2</option>");
                                      }
                                  ?>
                              </select>
    Last edited by wahsaga; 20-01-2004, 09:12.
    http://www.nanc-angel.de

  • #2
    Re: alle auslesen aus db

    Original geschrieben von firebirder
    nun möchte ich aber auch auswählen können, das er alle anzeigen soll. was für ein value nehme ich dafür?
    welches auch immer dir gefällt, "alle" z.b.

    dieses fragst du nachher im verarbeitenden script allerdings vorher ab, und wenn dieser wert übergeben wurde, dann lässt du den entsprechenden teil in deiner WHERE-klausel halt weg, bzw. wenn nur dieses eine feld selektionskriterium ist, lässt du halt die gesammte WHERE-klausel weg ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      also ich habe 3 felder:
      1. dropdownfeld mit dem namen ("suchkat")
      2. textfeld mit dem namen ("suchbegriff")
      3. dropdownfeld mit dem namen suchland

      die werden mit php_self verarbeitet.

      meie suchabfrage ist momentan so:
      PHP Code:
      $abfrage "select * from $entries_table where field20 like '$suchkat'
      and field18 like '%
      $suchbegriff%' and field7 like '$suchland'
      order by field0 asc"

      das funktioniert nur wenn ich eine bestimmte kategorie ausgewählt habe und ein bestimmtes land. ich möchte aber auch alle kategorien und länder durchsuchen können. was muß ich also genau ändern?

      muß ich da irgentwie eine if-abfrage basteln? wenn ja, wie?
      Last edited by wahsaga; 20-01-2004, 09:11.
      http://www.nanc-angel.de

      Comment


      • #4
        Original geschrieben von firebirder
        ich möchte aber auch alle kategorien und länder durchsuchen können. was muß ich also genau ändern?
        du musst, wie ich schon sagte, dafür sorgen, dass die entsprechende spalte gar nicht erst in der where-klausel auftaucht, wenn keine einschränkung ihrer werte vorgenommen werden soll.
        bzw., wenn bei allen spalten jeder wert ausgewählt werden sollst, dann darfst du natürlich gar keine where-klausel haben.

        ja, eine oder mehrere if-abfragen wirst du dazu wohl schon brauchen.

        kannst ja mal suchen, so was haben wir schon öfters behandelt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment


        • #5
          *fingerwundgesucht*

          aber irgentwie nix richtiges gefunden --> falsch gesucht.

          also muß die afrage geändert werden. ist das so ein richtiger ansatz?)

          PHP Code:
          if ($suchkat == all)
          $katsuche '';
          else
          $katsuche 'field20 like '$suchkat';

          if ($suchland == all)
          $landsuche = '';
          else
          $landsuche = '
          field7 like '$suchland'


          $abfrage "select * from $entries_table where field18 like '%$suchbegriff%' and $katsuche and $landsuche order by field0 asc"
          Klappt aber nicht wie ich es mir vorstelle.
          http://www.nanc-angel.de

          Comment


          • #6
            Original geschrieben von firebirder
            ist das so ein richtiger ansatz?)
            nein, nicht so ganz.

            du nimmst
            PHP Code:
            and $katsuche and $landsuche 
            ja auf jeden fall in deine query auf, selbst wenn diese leer sind - das gibt dann natürlich sql-fehler.

            PHP Code:
            if ($suchland == all
            wo hast du die konstante all definiert?
            oder meinst du vielleicht doch eher "all"?

            und fehler mit den quotes hast du auch noch drin, wie du am syntax-highlighting siehst ...


            also, so wie ich das sehe, soll bei dir die spalte field18 auf jeden fall immer nach einem bestimmten wert durchsucht werden, richtig?

            dann hast du es etwas einfacher, denn eine WHERE-klausel hast du dann ja auf jeden fall, brauchst also nicht mehr entscheiden, ob WHERE ggf. weggelassen werden müsste.

            PHP Code:
            $abfrage "SELECT * FROM $entries_table WHERE field18 LIKE '%$suchbegriff%' ";

            if (
            $suchkat == "all") {
               
            $katsuche '';
            }
            else {
              
            $katsuche "AND field20 LIKE '$suchkat' ";
            }

            if (
            $suchland == "all") {
              
            $landsuche '';
            }
            else {
              
            $landsuche "AND field7 like '$suchland' ";
            }

            $abfrage .= $katsuche.$landsuche."ORDER BY field0 ASC"

            so, nur mal als beispiel.
            nagel mich nicht drauf fest, dass es so 100%ig funktioniert.
            wenn nicht, benutze unbedingt mysql_error() zum debuggen (und zwar bevor du hier nachfragst).

            und gewöhne dir unbedingt mal einen etwas saubereren coding-stil an.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              wow.

              ist versprochen mit dem saubereren code in zukunft. es klappt hervorragent.

              eine letzte sache ist da aber noch. wenn ich jetzt einen wert ausgewählt habe und auf search klicke. erscheint das richtige ergebnis und die vorauswahl ist in der dropdown zelle zu sehen.

              geht bei den genauen werten. aber wenn ich all anklicke (das richtige ergebnis wird geliefert), setzt er das dropdown feld zurück, bzw. vergibt keinen selected.

              wie löse ich dieses kleine hindernis? ganz oben seht ihr wie meine selectbox bisher aufgebaut ist. da kommt das noch zu:

              PHP Code:
              <option value="all">All</option
              http://www.nanc-angel.de

              Comment


              • #8
                Original geschrieben von firebirder
                aber wenn ich all anklicke (das richtige ergebnis wird geliefert), setzt er das dropdown feld zurück, bzw. vergibt keinen selected.
                die abfrage, ob er selected dazuschreiben soll, hast du bisher nur für deine aus der DB kommenden kategorien implementiert (übrigens auf eine auch recht seltsame weise).

                da dein "all" aber nicht aus der DB kommt, muss hier natürlich nochmal eine extra abfrage rein, ob der von der vorherigen seite übergeben wert mit "all" übereinstimmt.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Comment

                Working...
                X