Arrays verrechnen

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

  • #16
    Original geschrieben von Wurzel


    versuchs mal so
    Hm, die Fehlermeldung bleibt aus, angezeigt wird aber auch nichts.

    Kommentar


    • #17
      ich fall auch immer darauf rein ... kleiner denkfehler.
      PHP-Code:
      $array1 = array();
      $array2 = array();

      while (
      $row mysql_fetch_array($result))
         {
          
      $array1[] = $row[0];
         }
      while (
      $row mysql_fetch_array($result2))
         {
          
      $array2[] = $row[0];
         }

      $result3 array_diff ($array1$array2);
         
         foreach(
      $result3 as $value)
         {
          print 
      "<td>Ergebnis: ".$value."</td>"
         } 
      so, jetzt aber ... wobei die option mit der kommaliste in tateinheit mit happys tipp mir vernünftiger erscheint.
      Kissolino.com

      Kommentar


      • #18
        Original geschrieben von Wurzel
        ich fall auch immer darauf rein ... kleiner denkfehler.


        so, jetzt aber ... wobei die option mit der kommaliste in tateinheit mit happys tipp mir vernünftiger erscheint.

        Das klappt auch nicht, keine Fehlermeldungen und keine Ausgabe. Wo war/ist denn der kleine Denkfehler von dem Du oben schreibst?

        Kommentar


        • #19
          gib mal noch ein
          print_r($array1);
          print_r($array2);
          ein und vergleich mal die ausgaben

          für jeden durchlauf wird $row mit einem array aus mysql_fetch_array($result) gefüllt und ist kein vollständiges array mit allen gefundenen
          db-inhalten.

          wenns keine ausgabe UND keine fehlermeldungen gibt , müssten beide
          arrays gleich sein (rein inhaltlich). daher print_r().
          Kissolino.com

          Kommentar


          • #20
            Ausgabe: Resource id #2Resource id #3 Was bedeutet das jetzt wieder?

            Kommentar


            • #21
              *grmpf*
              poste mal bitte die db-abfragen
              Kissolino.com

              Kommentar


              • #22
                PHP-Code:
                <?php
                /* ++++++++++++++++++++++++++++++++++++++++++++++++
                    SQL Anweisung zur Überprüfung auf freie Zimmer
                   ++++++++++++++++++++++++++++++++++++++++++++++++ */


                   
                $link=mysql_connect("localhost","root","mysql")or die("Keine Verbindung möglich");

                // Auswahl der zu verwendenden Datenbank auf dem Server

                   
                mysql_select_db("z_rniebuhr"$link)or die("Kann Datenbank nicht auswählen");

                // Abfrage

                   // Für die Abfrage benötigte Parameter

                  
                $dan "2003-08-18";
                  
                $dab "2003-08-26";
                  
                  
                // SQL Anweisung
                       
                  
                $sql "SELECT DISTINCT z.raum_id
                          FROM raum r
                          LEFT JOIN zraum z USING (raum_id)
                          WHERE
                          (
                          z.anreise BETWEEN '"
                .$dan."' AND '".$dab."'
                          or
                          z.abreise BETWEEN '"
                .$dan."' AND '".$dab."'
                          )"
                ;
                         
                  
                $sql2 "SELECT r.raum_id
                           FROM raum r"
                ;
                         
                  
                // Array für das Abfrageergebnis

                   
                $result mysql_query($sql$link);
                   
                $result2 mysql_query($sql2$link);

                   
                print_r($result);
                   
                print_r($result2);

                   
                // Free resultset

                   
                mysql_free_result($result);

                   
                // Verbindung beenden

                   
                mysql_close($link);

                ?>

                Kommentar


                • #23
                  Original geschrieben von Wilhelm
                  PHP-Code:
                  <?php
                  /* ++++++++++++++++++++++++++++++++++++++++++++++++
                      SQL Anweisung zur Überprüfung auf freie Zimmer
                     ++++++++++++++++++++++++++++++++++++++++++++++++ */


                     
                  $link=mysql_connect("localhost","root","mysql")or die("Keine Verbindung möglich");

                  // Auswahl der zu verwendenden Datenbank auf dem Server

                     
                  mysql_select_db("z_rniebuhr"$link)or die("Kann Datenbank nicht auswählen");

                  // Abfrage

                     // Für die Abfrage benötigte Parameter

                    
                  $dan "2003-08-18";
                    
                  $dab "2003-08-26";
                    
                    
                  // SQL Anweisung
                         
                    
                  $sql "SELECT DISTINCT z.raum_id
                            FROM raum r
                            LEFT JOIN zraum z USING (raum_id)
                            WHERE
                            (
                            z.anreise BETWEEN '"
                  .$dan."' AND '".$dab."'
                            or
                            z.abreise BETWEEN '"
                  .$dan."' AND '".$dab."'
                            )"
                  ;
                           
                    
                  $sql2 "SELECT r.raum_id
                             FROM raum r"
                  ;
                           
                    
                  // Array für das Abfrageergebnis

                     
                  $result mysql_query($sql$link);
                     
                  $result2 mysql_query($sql2$link);

                     
                  print_r($result);
                     
                  print_r($result2);

                     
                  // Free resultset

                     
                  mysql_free_result($result);

                     
                  // Verbindung beenden

                     
                  mysql_close($link);

                  ?>
                  *kreisch*
                  kein wunder, dass du die recource-indices rausbekommst

                  bring das nachfolgende mal mit dem da oben ^^ in zusammenhang
                  PHP-Code:
                  $array1 = array();
                  $array2 = array();

                  while (
                  $row mysql_fetch_array($result))
                     {
                      
                  $array1[] = $row[0];
                     }
                  while (
                  $row mysql_fetch_array($result2))
                     {
                      
                  $array2[] = $row[0];
                     }

                  print_r($array1);
                  print_r($array2);

                  $result3 array_diff ($array1$array2);
                     
                     foreach(
                  $result3 as $value)
                     {
                      print 
                  "<td>Ergebnis: ".$value."</td>"
                     } 
                  aber langsam, gaaaanz laaaaangsaaaam
                  Kissolino.com

                  Kommentar


                  • #24
                    Jaja, mysql_fetch_array und einiges anderes weggelassen. Sorry, mußt mich ja echt für dämlich halten.

                    Jetzt bin ich leider zu müde um code-technisch noch was auf die Reihe zu kriegen.

                    Morgen Mittag mach ich weiter. Hoffentlich sehen wir uns hier dann wieder. Erstmal vielen Dank für die nette Unterstützung.

                    Kommentar


                    • #25
                      PHP-Code:
                      <?php
                      /* ++++++++++++++++++++++++++++++++++++++++++++++++
                          SQL Anweisung zur Überprüfung auf freie Zimmer
                         ++++++++++++++++++++++++++++++++++++++++++++++++ */

                         
                      $link=mysql_connect("localhost","root","mysql")or die("Keine Verbindung möglich");
                      // Auswahl der zu verwendenden Datenbank auf dem Server
                         
                      mysql_select_db("z_rniebuhr"$link)or die("Kann Datenbank nicht auswählen");
                      // Abfrage
                      // Für die Abfrage benötigte Parameter
                      $dan "2003-08-18";
                      $dab "2003-08-26";
                      // SQL Anweisung
                        
                      $sql "SELECT DISTINCT z.raum_id
                                FROM raum r
                                LEFT JOIN zraum z USING (raum_id)
                                WHERE
                                (
                                z.anreise BETWEEN '"
                      .$dan."' AND '".$dab."'
                                or
                                z.abreise BETWEEN '"
                      .$dan."' AND '".$dab."'
                                )"
                      ;

                        
                      $sql2 "SELECT r.raum_id
                                 FROM raum r"
                      ;

                      // Array für das Abfrageergebnis
                         
                      $result mysql_query($sql$link);
                         
                      $result2 mysql_query($sql2$link);

                      $array1 = array();
                      $array2 = array();

                      while (
                      $row mysql_fetch_array($result))
                         {
                          
                      $array1[] = $row[0];
                         }
                      while (
                      $row mysql_fetch_array($result2))
                         {
                          
                      $array2[] = $row[0];
                         }
                      print_r($array1);
                      print_r($array2);

                      $result3 array_diff ($array1$array2);
                         foreach(
                      $result3 as $value)
                         {
                          print 
                      "<td>Ergebnis: ".$value."</td>";
                         }
                         
                      // Free resultset
                         
                      mysql_free_result($result);

                         
                      // Verbindung beenden
                         
                      mysql_close($link);
                         
                      ?>

                      Ausgabe: Array ( [0] => 1 [1] => 3 ) Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

                      Warum wird $result3 nicht ausgegeben?

                      Kommentar


                      • #26
                        php.net:
                        array array_diff ( array array1, array array2 [, array ...])

                        array_diff() gibt ein Array mit allen Werten von array1, welche in keinem der anderen Argumente enthalten sind, zurück. Beachten Sie, dass Schlüssel erhalten bleiben.
                        http://de.php.net/manual/de/function.array-diff.php
                        sieht so aus als würde vom ERSTEN array, das nachfolgende abgezogen.
                        da dein erstes array 2 einträge hat die auch im abzuziehenden array
                        vorkommen ist es leer ... und damit auch korrekt nach adam riese und
                        eva zwerg
                        Kissolino.com

                        Kommentar


                        • #27
                          Klasse, jetzt funktioniert es. Danke Wurzel!

                          Kommentar


                          • #28
                            teste noch spasseshalber ...
                            PHP-Code:
                            // statt :
                            /* while ($row = mysql_fetch_array($result))
                               {
                                $array1[] = $row[0];
                               }
                            while ($row = mysql_fetch_array($result2))
                               {
                                $array2[] = $row[0];
                               }
                            print_r($array1);
                            print_r($array2);

                            $result3 = array_diff ($array1, $array2);
                               foreach($result3 as $value)
                               {
                                print "<td>Ergebnis: ".$value."</td>";
                               } */

                            // setze
                            $row1 mysql_fetch_array($result);
                            $row2 mysql_fetch_array($result2);
                            $result3 array_diff ($row1$row2);
                               foreach(
                            $result3 as $value)
                               {
                                print 
                            "<td>Ergebnis: ".$value."</td>";
                               } 
                            ... sollte auch klappen (evtl. vertauschen wegen subtraktion), dann hast du
                            etwas unnötiges zeug draussen ... war gestern wohl etwas spät
                            Kissolino.com

                            Kommentar


                            • #29
                              Nö, das klappt nicht.

                              Kommentar

                              Lädt...
                              X