Ankündigung

Einklappen
Keine Ankündigung bisher.

foreach in php5.3

Einklappen

Neue Werbung 2019

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

  • foreach in php5.3

    Hallo,
    der Code funktioniert in php < 5.2, leider nicht mehr in der 5.3 (.3). Es wird die erste Zeile im Ausschnitt als Fehler gemeldet:

    Warning: Invalid argument supplied for foreach() in xxxx/viewshomeview.pdf.php
    on line
    125

    Ausschnitt:
    PHP-Code:
    foreach ($result as $reports)
        {//echo $reports->id;
          $displays = $display[$reports->id];
        //  print_r($displays);
        if (!$displays) {
          $displays->data1 = 1;
          $displays->image = 1;
          $displays->address = 1;
          $displays->date1 = 1;
          //$displays->date2 = 1;
          //$displays->date3 = 1;
          $displays->summary = 1;
          //$displays->boss = 1;
          //$displays->people = 1;
          //$displays->department = 1;
          $displays->desc = 1;
        }
            $curTime = strtotime($reports->date1);
            $curMonth = date('M', $curTime);
            if ($curMonth != $prevMonth)
            {
                ?><br /><br /><table border="1" width="800"><tr><td colspan="4" width="140%" align="left" bgcolor="#c0c0c0"><?php    echo 'Monat '.strftime('%B'$curTime);
                
    ?></td></tr><tr><td width="28%" align="left" bgcolor="#DDDDDD"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><B>Nr.</B></FONT></td><td width="100%" align="left" bgcolor="#DDDDDD"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><B>Alarmierung</B></FONT></td><td width="160%" colspan="2"  align="left" bgcolor="#DDDDDD"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><B>Einsatzbeschreibung</B></FONT></td><td  align="left" bgcolor="#DDDDDD"></td><td width="440%" align="left" bgcolor="#DDDDDD"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><B>Kurzbericht</B></FONT></td></tr><?php
             $prevMonth 
    $curMonth;
            }

            
    $rSummary $reports->summary;
             
    $rSummarys strlen($rSummary) > 35 substr($rSummary035).'...' $rSummary;
            
    $rAddresses $reports->address;
             
    $rAddresses strlen($rAddresses) > 35 substr($rAddresses035).'...' $rAddresses;         
            
    $ActCount count($result) - $i;
            
    ?><tr><td width="28%" align="left"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><?php echo $ActCount;?></FONT></td><td width="100%" align="left"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><?php echo date('d.m.Y H:i'$curTime)?></FONT></td><td width="160%" align="left"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><?php
            
    echo $displays->data1!=$reports->data1 '';        
            
    ?></FONT></td><td width="440%" align="left"><FONT COLOR=BLACK FACE="Geneva, Arial" SIZE=-4><?php echo $displays->summary $rSummarys ''; echo ', '; echo $displays->address $rAddresses '';
            
    ?></FONT></td><?php 
                
    ++$i;
                
    ?></tr><?php
            
    }

    Wäre schön wenn mir jmd helfen könnte.

    Danke
    Jan


  • #2
    Dann wird $result wohl falsch zugewiesen und ist kein Array.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Lass dir mal $results VOR der Schleife mit var_dump() ausgeben!

      Kommentar


      • #4
        Schalt das Error-Reporting auch bitte hoch auf E_ALL | E_STRICT. Vermutlich ist vorher schon ein Fehler passiert. Darueber, dass sich bei foreach() in PHP 5.3 etwas geaendert hat, weiss ich nichts.
        "Mein Name ist Lohse, ich kaufe hier ein."

        Kommentar


        • #5
          Hallo,
          das ist die Ausgabe:

          NULL
          Warning: Invalid argument supplied for foreach() in xxxx/viewshomeview.pdf.php
          on line
          126


          Jan

          Kommentar


          • #6
            Zitat von jbd Beitrag anzeigen
            Hallo,
            das ist die Ausgabe:

            NULL
            Warning: Invalid argument supplied for foreach() in xxxx/viewshomeview.pdf.php
            on line
            126


            Jan
            Ja und?

            $result ist NULL und kein Array. Da wir aber nicht sehen wo $result zugewiesen wird können wir damit wenig anfangen und du solltest selbst wissen das NULL != Array ist.
            "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

            Kommentar


            • #7
              richtig, dass das kein Array ist. Find es nur komisch, das es unter 5.2 läuft.

              Anbei mal die ges. Datei.

              Jan

              FALSCHER ANHANG
              Angehängte Dateien

              Kommentar


              • #8
                Vermutlich ist dort einfach nur das Error reporting ausgestellt.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Du musst halt mal auf den Grund gehen woher das Array kommt, vlt. wird das durch etwas generiert das in PHP 5.3 anders läuft.

                  Kommentar


                  • #10
                    mal sehen, ob ich da was finde....

                    korrigierter Anhang
                    Angehängte Dateien

                    Kommentar


                    • #11
                      PHP-Code:
                      $result $this->get('Result'); 
                      die Methode get ist nicht in ReportsViewHome definiert, wird wohl in JView stecken
                      DevBlog|3D Online-Shopping|Xatrium

                      Kommentar


                      • #12
                        notation ohne warnung:

                        PHP-Code:
                        foreach( (array) $result as $reports )
                        {
                            [...]

                        cx

                        Kommentar


                        • #13
                          foreach ist vollkommen in ordnung, aber scheinbar liefert eine funktion die unter <5.3.3 noch ein leeres Array lieferte, jetzt NULL zurück

                          type-castet man nicht da wo das $result entsteht statt in jedem code abschnitt wo $result benutzt wird ? ^^
                          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                          Kommentar


                          • #14
                            Kommt drauf an, ob woanders der NULL-Wert benötigt wird.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              Aber wenn er vorher davon ausgegangen ist das es ein array zurückliefert und sich darauf verlassen hat ?
                              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                              Kommentar

                              Lädt...
                              X