Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] mysqli::fetch() überschreibt mein array

Einklappen

Neue Werbung 2019

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

  • [Erledigt] mysqli::fetch() überschreibt mein array

    Hallo,
    liebes Forum ich versuche verzeifelt eine einfache datenbankabfrage richtig auszulesen.Leider klappt es so nicht:

    PHP-Code:
    $statement->bind_result($result['id'],$result['betreff'],$result['typ'],$result['datum'],$result['gelesen'],$result['absender']);
        
        
    $row=array();

        while(
    $statement->fetch())
        {
    $row[]=$result;}
       
        echo 
    json_encode($row); 
    Das Problem ist hier, dass er mir in $row in jedem einzelelement immer nur die letze zeile meiner sql abfrage ausgibt.
    Wenn ich es jetzt ohne schleife und ohne array mache, also $row1,$row2 usw. einzeln mache funktioniert es:
    PHP-Code:
    $statement->fetch(); 
        
    $row[]=$result;
        
    $statement->fetch(); 
        
    $row[]=$result
    es scheint als würde er bis zur letzen zeile fetchen und dann jeweils die letze zeile in meinem Fall viermal eintragen,sodass ich dann viermal die gleiche nachricht erhalte.

    Versteht jemand dieses verhalten und weiß Abhife?
    Vielen Dank

  • #2
    fetchAll statt fetch? (Nur geraten)

    Kommentar


    • #3
      Leider nein,da wird der $key unterschlagen,außerdem liefert mir das nur ein Ergebnis.
      Folgendes ist ebenso merkwürdig:
      PHP-Code:
      $truecheck=true;     
          while(
      $truecheck==true)
          {
              if(
      $statement->fetch())
              {
                  
      $row[]=$result;
              }
              else
              {
      $truecheck=false;}
          } 
      Liefert mir nur die erste Zeile!! HÄ? ist mein PHP kaputt oder bin ich nur zu doof.

      Kommentar


      • #4
        Ja dein PHP ist kaputt.

        Also bitte, so eine Frage kann man nicht beantworten.

        Kommentar


        • #5
          oh mann ich habe es doch noch selbst lösen können:

          Ich hatte nur das Feld "gelesen" mit NULL für 'ungelesen' definiert.
          Damit kommt PHP offenbar nicht klar.
          Jetzt habe ich es auf "0000-00-00 00:00:00" für ungelesen definiert und vola es läuft

          Kommentar


          • #6
            Nö,ich hab mich geiirt
            Ändert nix an dem Problem

            Kann es denn sein,das PHP keine unabhängigen Kopien von Arrays erstellt?
            Also:
            PHP-Code:
            $a=array(0=>10,1=>15);
            $b=$a;
            $b=array(0=>10000);
            echo 
            $a[0];
            //Ausgabe: 10 
            Also hier jedenfalls nicht!!!

            Kommentar


            • #7
              PHP-Code:
               $i=0;
                  while(
              $statement->fetch())
                  {
                      
              $row[$i]['id']=$result['id'];
                      
              $row[$i]['betreff']=$result['betreff'];
                      
              $row[$i]['typ']=$result['typ'];
                      
              $row[$i]['datum']=$result['datum'];
                      
              $row[$i]['gelesen']=$result['gelesen'];
                      
              $row[$i]['absender']=$result['absender'];
                      
              $i++;
                  } 
              Blöd aber manchmal geht es nur mit viel Code

              Kommentar

              Lädt...
              X