Datenbankabfrage in Array

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

  • Datenbankabfrage in Array

    Hallo,
    hab ein kleines Problem mit einer meiner DB Abfragen. Also ich will meine Datenbankabfrage in mehrdimensionales Array speichern und dann mit einer foreach-Schleife ausgeben. Und so sieht das ganze aus:

    PHP-Code:
    $blogDBResult = array();
    $blogDatas = array();

    $query "SELECT * FROM blog WHERE autor = 'admin'";
    $result mysql_query($query);
      while (
    $row mysql_fetch_array($result)) {
      
    $blogDBResult = array (
        
    'blogText'=>$row->text,
        
    'blogTitle'=>$row->titel,
        
    'blogTime'=>$row->time,
        
    'blogDate'=>date("d.m.Y"$row->time),
        
    'blogTime'=>date("H:i"$row->time),
        
    'blogUpdateDate'=>date("d.m.Y"$row->updateTime),
        
    'blogUpdateTime'=>date("H:i"$row->updateTime)
      );

      
    array_push($blogDatas$blogDBResult);
      } 
    Nun wenn ich das mehrdim. Array "$blogDatas" per foreach Schleife ausgeben will befindet sich nix im Array. Habe "$blogDatas" mit print_r() ausgeben und gesehen das er gar nichts in das Array reinschreibt. Also wollte ich euch fragen woran das liegt. Komm einfach nicht drauf...

    MfG
    Cappo

  • #2
    Der gezeigte Code "funktioniert" wie gewünscht in dem Sinne, dass er in jedem Schleifendurchlauf den Inhalt von $blogDBResult als neues Element an $blogDatas anfügt.

    Wenn da letztendlich gar nichts drin steht - dann wurde vielleicht deine Schleife gar nicht so oft durchlaufen, wie du dir erträumt hast (nämlich 0 statt X Mal).
    Hast du das mal überprüft ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Jo also wenn ich ein print_r() auf $row mache bekomme ich 3 Durchläufte gezeigt (soviel wie er halt laut der Query findet)....

      MfG
      Cappo

      Kommentar


      • #4
        Sorry, dann kann ich dein Problem mit dem Code nicht nachvollziehen.

        Welche der Kontrollausgaben hast du wo genau gemacht?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          also die erste hier:

          PHP-Code:
          $blogDBResult = array();
          $blogDatas = array();

          $query "SELECT * FROM blog WHERE autor = 'admin'";
          $result mysql_query($query);
            while (
          $row mysql_fetch_array($result)) {
            
          print_r($row);
            
          $blogDBResult = array (
              
          'blogText'=>$row->text,
              
          //'blogAutor'=>$row->autor,
              
          'blogTitle'=>$row->titel,
              
          'blogTime'=>$row->time,
              
          'blogDate'=>date("d.m.Y"$row->time),
              
          'blogTime'=>date("H:i"$row->time),
              
          'blogUpdateDate'=>date("d.m.Y"$row->updateTime),
              
          'blogUpdateTime'=>date("H:i"$row->updateTime)
            );

            
          array_push($blogDatas$blogDBResult);
            } 
          Das print_r() wirft mir folgendes aus:

          Code:
          Array ( [0] => 6 [id] => 6 [1] => Titel [titel] => Titel [2] => admin [autor] => admin [3] => text [4] => 1234295505 [time] => 1234295505 [5] => 1241271391 [updateTime] => 1241271391 ) Array ( [0] => 4 [id] => 4 [1] => Titel1 [titel] => Titel1 [2] => admin [autor] => admin [3] => Hallo..test...test [text] => Hallo..test...test [4] => 1234295287 [time] => 1234295287 [5] => 0 [updateTime] => 0 ) Array ( [0] => 11 [id] => 11 [1] => testseetstseestsetsestetse [titel] => testseetstseestsetsestetse [2] => admin [autor] => admin [3] => tsetsestesesetsetsetsestestetsetseste [text] => tsetsestesesetsetsetsestestetsetseste [4] => 1250623466 [time] => 1250623466 [5] => 0 [updateTime] => 0 )
          Die zweite vor der foreach-Schleife:

          PHP-Code:
          print_r($blogDatas);
             foreach (
          $blogDatas as $data) {
              echo
          '
              <div class="blogBar">
                <div id="blogs">
                  <div class="blogBarBorder1"></div>
                  <div class="blogBarBorder2"></div>
                  <div class="blogBarBorder3"></div>

                  <div id="title" class="blogBarSize">
                    <div onclick="showBox(\'text'
          .$i.'\')">
                      <div class="blogTitle">'
          .$data['blogTitle'].'</div>
                    </div>
                  </div>
                  <div class="blogBarSize">
                    <div class="blogDate">
                      Geschrieben am <b> '
          .$data['blogDate'].' </b>um<b> '.$data['blogTime'].' </b>Uhr
                    </div>
                  </div>'

          (Code geht noch weiter...)

          Und das print_r() wirft mir das zurück:

          Code:
          Array (     [0] => Array         (             [blogText] =>              [blogTitle] =>              [blogTime] => 01:00             [blogDate] => 01.01.1970             [blogUpdateDate] => 01.01.1970             [blogUpdateTime] => 01:00         )      [1] => Array         (             [blogText] =>              [blogTitle] =>              [blogTime] => 01:00             [blogDate] => 01.01.1970             [blogUpdateDate] => 01.01.1970             [blogUpdateTime] => 01:00         )      [2] => Array         (             [blogText] =>              [blogTitle] =>              [blogTime] => 01:00             [blogDate] => 01.01.1970             [blogUpdateDate] => 01.01.1970             [blogUpdateTime] => 01:00         )  )
          MfG
          David

          Kommentar


          • #6
            Und auf Daten, die du explizit in Form eines Arrays holst, anschliessend mit der Schreibweise zugreifen zu wollen, die man zum Zugriff auf die Eigenschaften/Methoden von Objekten benutzt, erscheint dir sonderlich clever ...?

            Stelle bitte das error_reporting auf E_ALL, während du entwickelst, dann hat PHP die Chance, dich gleich auf sowas hinzuweisen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Hmmm okay stimmt eigentlich...Könntest du mir evtl. sagen wie du es anstellen würdest?

              MfG
              Cappo

              Kommentar


              • #8
                Ich würde mir vorher überlegen, ob ich die Daten in Objekt- oder Array-Form von der Datenbank abhole - und dann die jeweils passende Notation für den Zugriff verwenden.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ok werd wieder ein bisschen rumtüfteln. Werds schon gebacken kriegen. Danke nochmals.

                  MfG
                  David

                  Kommentar

                  Lädt...
                  X