checkbox: für profis leicht... für mich ;-(

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

  • checkbox: für profis leicht... für mich ;-(

    hallo,
    kann mir mal bitte jemand weiterhelfen?
    so hab ich es:
    if( !isset($_POST["kat"]) && !is_array($_POST["kat"]) && !isset($_POST["suche"]) ){ //katabfrage
    $katabfrage = 0; }
    $katabfrage=$_POST["kat"];
    $anzahl=count($katabfrage);
    for($i=0;$i<$anzahl;$i++)
    {
    echo "$i{$kat[$i]}
    \n";
    }
    aber dann krieg ich nur aufgezählt 1,2,3 je nach anzahl der angeklickten box

    ich wünsche mir aber die zahl der box?? also 1 und 3 und 7 z.b. ist angeklickt...
    und wie krieg ich das dann in eine variable,
    so dass ich "anweisen" kann, wenn checkbox z.b. 1 und 2 (oder 5,7,12...) geklickt,
    dann suche in tabelle xy in spalte "checkboxzahl, also 1 und 2 oder 1 und 4 und 5"?

    aber wie geht dies for-schleife um alle 14 felder abzufragen -
    was ich jetzt hab, ist die aufzählung dass 1,2,3 checkbox aktiviert sind, aber welche sind denn nun diese 1,2,3 gesamten checkboxen??? ;-(
    und wie krieg ich in eine variable, dass ich:

    select name from tabelle Where = (alle spalten mit nummer der checkbox = 1)

    oder ist das dér falsche ansatz?
    cu Gwolf

  • #2
    immer mit der ruhe - erstmal code schön formatieren, php-tags sind heute im angebot.

    dann zeigst du schön die html-form, erklärst deine absicht und zeigst beispieldaten, bis dahin habe ich wenig verstanden...

    Kommentar


    • #3
      php Tags???
      ich wollte nur net soviel code posten??

      okay :
      PHP-Code:
      formular.php
      <div class="teilbox1 lh130">
      <
      input name="kat[]" type="checkbox" class="check" value="1">a<br />
      <
      input name="kat[]" type="checkbox" class="check" value="2">b<br />
      <
      input name="kat[]" type="checkbox" class="check" value="3">c<br />
      <
      input name="kat[]" type="checkbox" class="check" value="4">v<br />
      <
      input name="kat[]" type="checkbox" class="check" value="5">x<br />
      <
      input name="kat[]" type="checkbox" class="check" value="6">z<br />
      ...
      ...
      </
      div
      PHP-Code:
      ausgabe.php
      <?php 
      if( !isset($_POST["kat"]) && !is_array($_POST["kat"]) 
      && !isset(
      $_POST["suche"]) ){  //katabfrage

      $katabfrage 0;   }
      $katabfrage=$_POST["kat"];
      $anzahl=count($katabfrage);
      for(
      $i=0;$i<$anzahl;$i++)
      {
        echo 
      "$i{$kat[$i]}<br>\n";

      }         

      ...
      ...
      $abfrage "SELECT name FROM tabelle 
      WHERE (alle geklickten checkboxen = 1 ) "
      ;
      ?>
      also: ich habe eine tabelle mit soviel spalten wie checkboxen
      plus spalte "name" - dann soll die checkboxauswertung mir
      eine variable[] übergebn, die ich für die select-abfrage nutzen kann,
      dass mir alle namen usgegeben werden, bei denen mindestens eine
      checkbox aktiviert ist(egal welche) -

      cu Guido
      Zuletzt geändert von Gwolf; 21.01.2005, 18:44.

      Kommentar


      • #4
        Original geschrieben von Gwolf
        php Tags???
        lesen!
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          danke @ wahsaga

          Kommentar


          • #6
            ich hoffe ich habe dich richtig verstanden:
            PHP-Code:
            if ($_POST['kat'])
            {
                 for (
            $i 0$i sizeof ($_POST['kat']); $i++)
                 {
                      if (
            $_POST['kat'][$i])
                      {
                           echo 
            $_POST['kat'][$i].'<br>'."\n";
                           
            $query 'SELECT name FROM tabelle WHERE checkbox'.($i+1).' = 1';
                      }
                 }

            gruss
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              danke @ peter -
              das hilft mir schon weiter -
              nur ich häng noch etwas, weil ich das :
              PHP-Code:
              WHERE checkbox'.($i+1).' 1'; 
              nicht verstehe ;-(

              aber evtl hab ich mich auch ungeschickt ausgedrückt? wie sollte die spaltenbezeichnung am einfachsten sein, benenne ich mein spalten also bei diesem beispiel nicht mit "kat1, kat2 usw" sondern
              checkbox1, checkbox2 usw?

              kann ich dazu auch aliase benutzen, um trotzdem zu wissen was in den spalten ist?

              merci
              cu
              gwolf
              Zuletzt geändert von Gwolf; 21.01.2005, 19:32.

              Kommentar


              • #8
                PHP-Code:
                if ($_POST['kat'] && count($_POST['kat'])>0)
                {
                     foreach(
                $_POST['kat'] as $v)
                     {
                            
                $sql[] = 'checkbox'.$v.' = 1'
                     }
                     echo 
                $query 'SELECT name FROM tabelle WHERE '.implode(' AND '$sql);

                sollte das gewünschte liefern.
                Kissolino.com

                Kommentar


                • #9
                  ja, danke - das bringt mich ein stück weiter -
                  es zeigt zumindest mit durch die echo zeile das an, was ich z.B. erwarte:
                  SELECT kdnr FROM kategorie WHERE checkbox1 = 1 AND checkbox2 = 1
                  AND checkbox3 = 1 AND checkbox9 = 1

                  nun versuche ich, das ganze bei mir zu intergieren.. ;-(

                  PHP-Code:
                  $where "WHERE (left(suche.ort,$zif) = '".$_REQUEST['eingabe']."' )" ;

                  if (
                  $_POST['kat'] && count($_POST['kat'])>0){
                               foreach(
                  $_POST['kat'] as $v)     {
                              
                  $sql[] = '(checkbox'.$v.' = 1)';      }
                              
                  $where .= "'.implode(' AND ', $sql)";}

                  $kdabfrage "SELECT kdnr FROM suche $where ";
                  $kdergebnis mysql_query($kdabfrage);
                  if (
                  mysql_num_rows($kdergebnis) < 1)
                  {require(
                  'includes/meldung3.php'); }
                  else
                  {while(
                  $row mysql_fetch_object($kdergebnis))
                  { include(
                  "kundeninc/".$row->kdnr.".inc"); 
                  } } 
                  aber irgendwie hab ich da nen denkfehler? inner join? oder wie bring die nun zusammen?
                  cu
                  Gwolf

                  mal pizza holen geh - sonst verhunger ich noch vor lauter learning by doing

                  Nachtrag: geschachteltes select geht nicht, weil nur 3er-mysql
                  Zuletzt geändert von Gwolf; 21.01.2005, 22:32.

                  Kommentar


                  • #10
                    select ... select ... select ... ist "grütze" ... wieviele tabellen hast du und welche strukturen haben die?
                    Kissolino.com

                    Kommentar


                    • #11
                      hallo,

                      tja - anfänger eben ;-)

                      tabelle mit plz, , ort, adresse, kdnr etc,

                      erst muss geprüft werden ob ort oder plz stimmen (das klappt ja) und dann ob kdnr zu dem ort gibt -
                      wenn ja
                      muss nach kdnr bestimmte dateien includiert werden -
                      das funkt soweit - wenn keine checkboxen angeklickt sind -

                      nun soll nach checkboxen abgefragt werden und nur wenn in einer dieser tabellen was angeklickt ist, müssen die aus dem "topf rausfallen, die in der tabelle unter der checkbox eine 0 haben, anders rum
                      nur wenn in einer tabelle was geklickt soll diese tabelle als einschränkung dienen...

                      also 9 tabellen mit je 14 bis 40 checkboxen,

                      tabellen im mom so aufgebaut, dass kdnr der gemeinsame nenner ist -

                      dann ebend:
                      tabelle kategorie
                      index, kdnr, checkbox1, checkbox2, checkbox3 etc
                      ( auch schwierig nachher nachzuvollziehen wo was rein muss, wenn die alle so heißen ;-( )
                      eingetragen wird nur 1, wenn geklickt, ansonsten ist 0 vorbelegt (enum-feld)

                      tabelle zimmer
                      index, kdnr, checkbox1, checkbox2, checkbox3 etc

                      tabelle freizeit
                      index, kdnr, checkbox1, checkbox2, checkbox3 etc

                      später kommen noch dropdown-tabellen hinzu ;-(

                      oder soll ich alles in eine große/breite tabelle machen?

                      cu
                      Guido

                      Kommentar


                      • #12
                        so weit bin ich mal aber es funkt nicht -
                        PHP-Code:
                        <input name="kat[]" type="checkbox" class="check" value="1">A<br>
                        <
                        input name="kat[]" type="checkbox" class="check" value="2">B<br>
                        usw.


                        $where "WHERE (left(suche.ort,$zif) = '".$_REQUEST['eingabe']."' )" ;

                            if (
                        $_POST['kat'] && count($_POST['kat'])>0){
                                 foreach(
                        $_POST['kat'] as $v)     {
                                        
                        $abc[] = 'checkbox'.$v.' = 1';  }
                        $where"WHERE (left(suche.ort,$zif) = '".$_REQUEST['eingabe']."' ) "
                        .implode(' AND '$abc);}

                        $kdabfrage "SELECT suche.kdnr FROM kategorie 
                        INNER JOIN suche ON (kategorie.kdnr = suche.kdnr) 
                        $where ";
                        $kdergebnis mysql_query($kdabfrage);

                        if (
                        mysql_num_rows($kdergebnis) < 1)
                        {require(
                        'includes/meldung3.php'); }
                        else    
                        {while(
                        $row mysql_fetch_object($kdergebnis))
                          {   include(
                        "kundeninc/".$row->kdnr.".inc");    }} 
                        d.h. er bringt : meldung3.php - die besagt ergebnis ist <1
                        auch wenn checkbox(en) geklickt ist
                        und er bringt alle einträge - wenn ich diese if-implode auskommentiere, was ja so sein soll, wenn nix angeklickt ist, soll keine einschränkung sein..

                        cu
                        Gwolf

                        Kommentar


                        • #13
                          dieses problem gelöst:

                          danke alle ideen-geber und helfer

                          Kommentar

                          Lädt...
                          X