Sandra: array_merge innerhalb MySQL Ausgabe

Guten Abend,

ich brauche bitte einmal Hilfe. Bei einer MySQL Abfrage erhalte ich unterschiedlich viele Resultate zurück. In jedem Datensatz sind 2 Felder mit einem Datumsformat (anreise, abreise).
Mit der Funktion "getDatesFromRange" ermittle ich die einzelnen Tage zwischen den beiden Daten.
Nun möchte ich die Daten in ein Array speichern. Leider komme ich da nicht weiter.

  
$query = "select * from tabelle";  
$select = mysql_query($query);  
$total = mysql_num_rows($select);  
  
while($ausgabe=mysql_fetch_object($select))  
{  
$meinarray = getDatesFromRange($ausgabe->anreise, $ausgabe->abreise);  
}  
print_r($meinarray);  

So bekomme ich nur die Daten aus dem letzten Datensatz ausgegeben.

Freue mich über einen Tipp.

Sandra

  1. Hi,

    ich korrigiere mal:

    $query = "select * from tabelle";
    $select = mysql_query($query);
    $total = mysql_num_rows($select);

    while($ausgabe=mysql_fetch_object($select))
    {
    $meinarray[] = getDatesFromRange($ausgabe->anreise, $ausgabe->abreise); // hier korrigiert
    }
    print_r($meinarray);

      
    print\_r($meinarray);  
    
    
  2. Meine Herren!

    Nun möchte ich die Daten in ein Array speichern. Leider komme ich da nicht weiter.

    Nun, nur weil eine Variable "array" im Namen trägt, wird es nicht automatischen zu einem.

      
    $meinarray = array();  
    while($ausgabe=mysql_fetch_object($select))  
    {  
     $meinarray[] = getDatesFromRange($ausgabe->anreise, $ausgabe->abreise);  
    }  
    print_r($meinarray);  
    
    

    Sollte es tun.

    Und ganz am Rande, die mysql_*-Funktionen sind veraltet.

    1. Hallo,

      vielen Dank für die Antwort. Als Ausgabe erhalte ich das folgende:

        
      Array ( [0] => Array ( [0] => 2014-01-14 [1] => 2014-01-15 [2] => 2014-01-16 [3] => 2014-01-17 [4] => 2014-01-18 ) [1] => Array ( [0] => 2014-01-22 [1] => 2014-01-23 [2] => 2014-01-24 [3] => 2014-01-25 [4] => 2014-01-26 [5] => 2014-01-27 [6] => 2014-01-28 [7] => 2014-01-29 [8] => 2014-01-30 [9] => 2014-01-31 ) )  
      
      

      Liegt es daran das die Funktion "getDatesFromRange" bereits ein Array liefert?

      Danke für Hilfe

      Sandra

      1. Hi

        Array ( [0] => Array ( [0] => 2014-01-14 [1] => 2014-01-15 [2] => 2014-01-16 [3] => 2014-01-17 [4] => 2014-01-18 ) [1] => Array ( [0] => 2014-01-22 [1] => 2014-01-23 [2] => 2014-01-24 [3] => 2014-01-25 [4] => 2014-01-26 [5] => 2014-01-27 [6] => 2014-01-28 [7] => 2014-01-29 [8] => 2014-01-30 [9] => 2014-01-31 ) )

        
        >   
        > Liegt es daran das die Funktion "getDatesFromRange" bereits ein Array liefert?  
          
        wo haste denn diese Funktion her? Das ist doch keine Standardfunktion. Und du solltest wissen, was diese Funktion zurückgibt. Sieht nach Array aus, richtig.
        
        1. Hallo,

          ja, die Funktion gibt ein Array zurück. Wenn ich 2 Datensätze abfrage erhalte ich folgendes:

            
          Array ( [0] => 2014-01-14 [1] => 2014-01-15 [2] => 2014-01-16 [3] => 2014-01-17 [4] => 2014-01-18 )  
          Array ( [0] => 2014-01-22 [1] => 2014-01-23 [2] => 2014-01-24 [3] => 2014-01-25 [4] => 2014-01-26 [5] => 2014-01-27 [6] => 2014-01-28 [7] => 2014-01-29 [8] => 2014-01-30 [9] => 2014-01-31 )  
          
          

          Diese beiden Arrays kann ich mit array_merge zusammenführen. Aber wie mache ich es, wenn ich die Anzahl der erhaltenen Datensätze nicht kenne?

          1. Hallo,

            ja, die Funktion gibt ein Array zurück. Wenn ich 2 Datensätze abfrage erhalte ich folgendes:

            Array ( [0] => 2014-01-14 [1] => 2014-01-15 [2] => 2014-01-16 [3] => 2014-01-17 [4] => 2014-01-18 )
            Array ( [0] => 2014-01-22 [1] => 2014-01-23 [2] => 2014-01-24 [3] => 2014-01-25 [4] => 2014-01-26 [5] => 2014-01-27 [6] => 2014-01-28 [7] => 2014-01-29 [8] => 2014-01-30 [9] => 2014-01-31 )

            
            >   
            > Diese beiden Arrays kann ich mit array\_merge zusammenführen.  
              
            Wozu sollte das denn gut sein? Du willst einen Männerjob machen? Dann mach's primitiv, stoisch und roh!  
              
            Du hast tatsächlich:  
              
            ~~~php
              
            $meinarray[0]=array('2014-01-14','2014-01-15','2014-01-16','2014-01-17','2014-01-18');  
            $meinarray[1]=array('2014-01-22','2014-01-23','2014-01-24','2014-01-25','2014-01-26','2014-01-27','2014-01-28','2014-01-29','2014-01-30','2014-01-31');  
            # Beweis:  
            print "<pre>";  
            print_r($meinarray);  
            print "</pre>";  
            
            

            die Daten kannst du mit ...

              
            foreach ($meinarray as $buchung) {  
                print "<pre>";  
                print_r($buchung);  
                print "</pre>";  
            }  
            
            

            ... "zeilenweise" holen und verarbeiten.

            Jörg Reinholz

            1. Hallo,

              Wozu sollte das denn gut sein? Du willst einen Männerjob machen? Dann mach's primitiv, stoisch und roh!

              Was sollen denn die komischen Anspielungen neuerdings?

              Viele Grüße
              Siri

              1. Moin!

                Wozu sollte das denn gut sein? Du willst einen Männerjob machen? Dann mach's primitiv, stoisch und roh!

                Was sollen denn die komischen Anspielungen neuerdings?

                Dachte nicht, dass ich das erklären muss. Das sind Reflexionen auf Vorurteile von Männern und Frauen. Oder anders herum.

                Jörg Reinholz

        2. wo haste denn diese Funktion her?

          Das ist das Ergebnis dieses Threads.

          Jörg Reinholz

    2. Meine Herren!

      Nun möchte ich die Daten in ein Array speichern. Leider komme ich da nicht weiter.

      Nun, nur weil eine Variable "array" im Namen trägt, wird es nicht automatischen zu einem.

      Ich nehme mal an, getDatesFromRange liefert ein Array.

      $meinarray = array();
      while($ausgabe=mysql_fetch_object($select))
      {
      $meinarray[] = getDatesFromRange($ausgabe->anreise, $ausgabe->abreise);
      }
      print_r($meinarray);

        
        
      Das ist richtig und löst das Problem. Jetzt ist $meinarray ein "Array über Arrays". Die Ursache war ganz einfach, dass $meinarray bei jedem Durchlauf `while () {genau hier}`{:.language-php} neu beschrieben wird und deshalb am Ende den letzten Wert hat.  
        
      Auch ein  
        
      ~~~php
        
      $meinarray = array();  
      while($ausgabe=mysql_fetch_object($select))  
      {  
        $meinarray[] = getDatesFromRange($ausgabe->anreise, $ausgabe->abreise);  
        print_r($meinarray);  
      }  
      
      

      ... hätte also gezeigt, was los ist.

      Jörg Reinholz (der immer noch wohlbegründet meint, dass Programmieren stets Männersache ist)