Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql-Abfrage?!?!?

Einklappen

Neue Werbung 2019

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

  • Mysql-Abfrage?!?!?

    Hallo

    leider fehlt mir momentan der Crips dazu, dass ich eine Abfrage so formuliere dass sie meinen Ansprüchen gerecht ist!!

    Also ich sollte eine Abfrage machen, die so aussieht:

    Ich habe zwei Tabellen: 1. categories_description 2. customer_to_categories
    Beide dieser Tabellen enthalten die categories_id...

    Also er soll mir alle categories_id von der Tabelle categories_description ausgeben die aber noch nicht in der customer_to_categories stehen!!

    Versteht ihr was ich meine???

    Mein Lösungsweg wäre so gewesen, funktioniert aber nicht:

    PHP-Code:
    <?php
    $abfrage 
    "SELECT cd.categories_id, cd.categories_name, ctc.categories_id, ctc.customers_id FROM categories_description cd, customer_to_categories ctc WHERE cd.categories_id != ctc.categories_id and ctc.customers_id =" .$customer_id
    ?>
    Könntet ihr mir weiterheflen??

    gruß


  • #2
    eventuell so:
    Code:
    SELECT
       cd.categories_id,
       cd.categories_name,
       ctc.categories_id,
       ctc.customers_id
    FROM
       categories_description cd
    LEFT JOIN
       customer_to_categories ctc
          ON (cd.categories_id = ctc.categories_id AND ctc.customers_id = '$customer_id')
    WHERE
       ctc.customers_id IS NULL
       AND
       ctc.categories_id IS NULL
    ~dilemma~

    Kommentar


    • #3
      OK soweit so gut...
      Funktioniert!

      NUR jetzt funktioniert der INSERT BEFEHL weiter unten nicht mehr:

      Mein Code:

      PHP-Code:
      <?php
      if (!$flag) {
                  
      ?>
                  <center><form name="hinzu" method="post" action='<?php tep_href_link(FILENAME_PRINTER?>'> 
               <?php 
               
                     
      // $abfrage = "SELECT cd.categories_id, cd.categories_name, ctc.categories_id, ctc.customers_id FROM categories_description cd, customer_to_categories ctc WHERE cd.categories_id != ctc.categories_id and ctc.customers_id =" .$customer_id; 
                     
                     // $abfrage = "SELECT categories_id, categories_name FROM categories_description";
                     
                     
      $abfrage "SELECT cd.categories_id, 
                                             cd.categories_name, 
                                          ctc.categories_id, 
                                          ctc.customers_id 
                                      FROM 
                                          categories_description cd 
                                          LEFT JOIN customer_to_categories ctc 
                                              ON (cd.categories_id = ctc.categories_id AND ctc.customers_id = '
      $customer_id') 
                                      WHERE ctc.customers_id IS NULL AND ctc.categories_id IS NULL "
      ;

                     
                     
      $ergebnis mysql_query($abfrage); 
                     echo 
      "<table border='0'><tr><td class='main'>[b]Drucker die noch zur Auswahl stehen:[/b]</td></tr>"
                     
                     while (
      $row mysql_fetch_array($ergebnis)) 
                        { 
                             
                                 echo 
      "<tr><td class='main'>
                              <input type='checkbox' name='chkbx_array[]' value='" 
      .$row[categories_id]. "'>"  $row['categories_name'] . "</td></tr>"
                        } 
                     echo 
      "</table>
      "

               
      ?> 
               <input type=hidden name=flag value=1> 
               <?php echo tep_draw_input_field('abschicken''Drucker hinzuf&uuml;gen'$parameters 'class="button"''submit'); ?> 
                
               </form></center> 
               <?php
               

               
      $hin1 $_POST['chkbx_array']; 
                   if (
      $flag==1) {
                       if (
      is_array($hin1)) 
                      {   
                         foreach(
      $hin1 as $hinzuvar)  { 
                            
      $hin "INSERT INTO customer_to_categories (customers_id, categories_id) values ('$customer_id', '$hinzuvar')"
                           
      $hinzuergeb mysql_query ($hin$db); 
                           echo 
      mysql_error(); 
                         }         
                                        
                  } else {               
                      echo 
      "/$hin1 ist kein Array";                 
                      }         
                  }     
                  
        
               
      ?> 
      ?>
      Der wäre erst schon gegangen mit einer normalen Abfrage wo er alles anzeigt!!

      Kannst du mir da auch einen Rat geben??

      Kommentar


      • #4
        Code:
        $hin = "INSERT INTO customer_to_categories (customers_id, categories_id) values ('$customer_id', '$hinzuvar')";
        
        /* *** Um zu sehen, ob diese INSERT-Anweisung noch stimmt, könntest du hier einmal folgendes einbauen: *** */
        
        echo "
         $hin 
        ";
        
        /* *** Vielleicht wird dann ersichtlich warum 'es nicht klappt' ??? *** */
        ~dilemma~

        Kommentar


        • #5
          PHP-Code:
          <?php
          $hin 
          "INSERT INTO customer_to_categories (customers_id, categories_id) values ('$customer_id', '$hinzuvar')"
                               
          $hinzuergeb mysql_query ($hin$db); 
                               echo 
          mysql_error(); 
                               echo 
          "
           
          $hin 
          "
          ;
          ?>
          SChreibt er das raus:

          PHP-Code:
          <?php
          INSERT INTO customer_to_categories 
          (customers_idcategories_idvalues ('11'''
           

          ?>
          Das heisst das mit $hinzuvar stimmt nicht mehr??? Aber warum und wie löse ich das Problem??

          Kommentar


          • #6
            Hast du auch mal ne Checkbox angeklickt ?
            Blöde Frage, oder

            Kommentar


            • #7
              ja habe ich, so blöd bin ich dann auch wieder nicht*gg*

              Kommentar


              • #8
                Code:
                $hin1 = $_POST['chkbx_array'];
                
                /* *** Laß dir hier doch mal folgendes anzeigen *** */
                
                print '<pre>';
                print_r($_POST['chkbx_array']);
                print '</pre>';
                
                /* oder auch:
                   print '<pre>';
                   print_r($_POST);
                   print '</pre>';
                */
                
                /* *** es scheint mir so, als ob mit der Checkbox etwas nicht stimmt! *** */
                ~dilemma~

                Kommentar


                • #9
                  Ausgabe wenn ich dass einfüge:

                  PHP-Code:
                  <?php
                  Array
                  (
                      [
                  0] => 
                      [
                  1] => 
                  )


                  INSERT INTO customer_to_categories (customers_idcategories_idvalues ('11'''

                  INSERT INTO customer_to_categories (customers_idcategories_idvalues ('11'''

                  ?>
                  Ja in diesem Array befinet sich nichts aber wenn ich bei der Select abfrage die normale nehme wos mir alle ausgibt dann geht der INSERT Befehl wunderbar!!

                  Ich verstehe es nicht, warum es genau dann nicht geht wenn ich die Select abfrage mit dem innerjoin verwende!

                  an was genau kann das liegen

                  Kommentar


                  • #10
                    PHP-Code:
                    <?php
                    <input type='checkbox' name='chkbx_array[]' value='" .$row[ctc.categories_id]. "'>"  . $row['categories_name'] . "</td></tr>";
                    ?>
                    Irgendwo da muss der Fehler liegen. Versuch mal so.
                    Weißt ja, bin auch nicht so der Gott.
                    Ich denke categories_id heißt jetzt anders.

                    Kommentar


                    • #11
                      Habe ich schon vorher ausprobiert, funktioniert nicht!!!

                      Ich komme einfach nicht auf eine Lösung, habe jetzt schon soviel probiert, aber...

                      Kommentar


                      • #12
                        Mangels Zeit hier ein Muster für ein zweckmäßges Arbeiten mit Checkboxes zum Testen:
                        Code:
                        <HR>
                        <?php
                        
                        if (isset($_POST['submit']))
                        {
                            echo "das Formular hat folgende Informationen geliefert:";
                        
                            print '<pre>';
                            var_dump($_POST);
                            print '</pre>';
                        
                            print 'Mittels FOREACH-Schleife ausgegeben: 
                        ';
                        
                            foreach($_POST['cbx'] as $key => $value)
                            {
                                echo "key = $key  ,value =  $value 
                        ";
                            }
                        
                            print 'Bitte versuchen Sie es nochmal';
                        
                        }
                        else
                        {
                        
                           ?>
                        
                           <form action="<?php echo $PHP_SELF; ?>" method="POST">
                        
                            cbx: verschiedene Keys, verschiedene Werte 
                        
                            : <input type="checkbox" name="cbx[a]" value="Apfel">   Apfel 
                        
                            : <input type="checkbox" name="cbx[b]" value="Banane">  Banane 
                        
                            : <input type="checkbox" name="cbx[c]" value="Citrone"> Citrone 
                        
                            
                        
                        
                            <input type="submit" name="submit" value="absenden">
                        
                        
                           </form>
                        
                           <?php
                        }
                        ?>
                        <HR>
                        Wie man sehen kann, enthält $_POST ein Array mit dem Key "cbx".
                        Von diesem Array $_Post['cbx']

                        kann man dann sehr einfach mittels ---> foreach($_POST['cbx'] as $key => $value)

                        die Inhalte von $key und $value ermitteln un weiterverarbeiten.

                        Man muß halt die Checkbox so bauen, wie im o.g. Beipiel.

                        mfg
                        ~dilemma~

                        Kommentar


                        • #13
                          Das ist aber für meine Zwecke eigentlich nicht das was ich suche, weil ich ja die Angaben auch schon aus einer Tabelle anzeigen lasse...
                          Das was ich nicht verstehe ist das, dass es bei der normalen Abfrage wo ich alle Kategorien anzeigen lasse geht der insert befehl und wenn ich nur die kategorien anzeigen lasse die man noch nicht ausgwählt hat geht der insert befehl nicht...
                          Das verstehe ich einfach nicht

                          Kommentar


                          • #14
                            Hat sich schon erledigt: Fehler war in der Select anweisung ctc.categories_id wurde 2mal aus der db selectiert darum hatte er den zweiten genommen und in den ersten wurde NULL geschrieben, darum!!!
                            Danke trotzdem an alle!!

                            Kommentar

                            Lädt...
                            X