Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Rückgabe aus API in einer Tabelle.

Einklappen

Neue Werbung 2019

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

  • Problem mit Rückgabe aus API in einer Tabelle.

    Hallo zusammen,

    ich habe folgenden PHP Code:

    PHP-Code:
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="include/stylesheet.css">
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />

     
    <meta http-equiv="refresh" content="5" />
    </head>
    <body>
    <?php

    $Gruppe 
    $_GET['LG'];
    $titel "Angemeldet in Sammelgruppe: ";

    if (empty(
    $Gruppe)) {
        echo 
    "<h2>Bitte Linegroup vorgeben</h2><br>http://Server/Cisco/hountgroup.php?LG=Linegroupname";
     echo 
    "<br><br><a href='Linegroup.php'>M&ouml;gliche Linegroups</a><br>";

     }
     
    if (!empty(
    $Gruppe)) {
          

    if (isset(
    $Gruppe)) {
        
    $params = array('sql' => 'select lg.name as LineGroup, d.description As TName, n.dnorpattern, dhd.hlog
          from linegroup as lg
          inner join linegroupnumplanmap as lgmap on lgmap.fklinegroup=lg.pkid inner join  numplan as n on lgmap.fknumplan = n.pkid
          inner join devicenumplanmap as dmap on dmap.fknumplan=n.pkid inner join  device as d on dmap.fkdevice=d.pkid
          inner join devicehlogdynamic as dhd on dhd.fkdevice=d.pkid
          where dhd.hlog = "t" AND lg.name="' 
    $Gruppe '" order by  n.dnorpattern');


     require_once(
    "include/connect_cucm.inc.php");

    echo 
    '<title>'.$titel.substr($Gruppe,3).'</title>';

    $response $client->executeSQLQuery($params);
    $zahlverfugbar 0;

      echo (
    "<H1> In Gruppe ".substr($Gruppe,3)." angem.:</h1>");
     
      
      echo
    "<div class='Tabelle1'>";
      echo
    "<table class='Table1'>
       <tr>
       <th>Rufnummer</th>
       <th>Name</th>
       </tr>"
    ;
      
      
     foreach(
    $response->return->row as $LineGroup) :
          
    $zahlverfugbar ++;
       echo
    '<tr class="online-Status">';
       echo
    '<td>' substr($LineGroup->dnorpattern,1) . '</td>';
       echo
    "<td>$LineGroup->tname</td>";
       echo
    "<td>$tname</td>";
       echo
    '</tr>';
     endforeach;
       echo
    "<tr>
       <td>Gesamt Verf&uuml;gbar:</td>
       <td><center><b>
    $zahlverfugbar</b></center></td>
       </tr>"
    ;
      
      echo
    "</table>";
      echo
    "</div>";
        
      }
     if (!isset(
    $Gruppe)) {
      
      echo 
    "<h2>Bitte Linegroup vorgeben</h2><br>http://Server/Cisco/hountgroup.php?LG=Linegroupname";
      echo 
    "<br><br><a href='Linegroup.php'>M&ouml;gliche Linegroups</a><br>";

     }
      
     }

     
    ?>
    <body>
    </html>
    Der VarDump ist so:


    PHP-Code:
    array(1) {
      [
    "return"]=>
      
    object(stdClass)#3 (1) {
        
    ["row"]=>
        
    object(stdClass)#4 (4) {
          
    ["linegroup"]=>
          
    string(12"LG_XXXX1_98"
          
    ["tname"]=>
          
    string(40"XXXX, Matthias, XXX,XXX "
          
    ["dnorpattern"]=>
          
    string(14"\+496131XXXX"
          
    ["hlog"]=>
          
    string(1"t"
        
    }
      }


    Mein Problem ist. Wenn ich genau diesen Inhalt im Dump habe, sprich nur ein Eintrag aus der Api kommt. Spinnt mir die Tabelle. Es wird weder Name noch nummer noch sonst was angezeigt. Es werden nur 4 kleine Spalten ohne Inhalt geschrieben.
    Wenn ich mir den VarDump für ROW ansehe, kann ich erkennen das bei einem EIntrag genau 4 EInträge ausgegeben werden.
    Bei 0 Einträge ist es okay und bei allem größer 1 ist es okay.
    Wie kann ich das verbessern? Das ich bei einem Eintrag eine vernünftigen Aufbau der Tabelle habe?


  • #2
    Es werden nur 4 kleine Spalten ohne Inhalt geschrieben.
    Was kommt im HTML Quelltext? Ist der valide? http://php-de.github.io/jumpto/faq/#debugging

    Und bitte dringend auch mal "die EVA" zum Gemüte führen, das wird von dir oben sehr vernachlässigt. http://php-de.github.io/jumpto/eva-prinzip/

    Und du brauchst die Umlaute übrigens nicht verstümmeln.

    Kommentar


    • #3
      Hallo das hier ist der Quellcode

      PHP-Code:
       <html>
        <
      head>
        <
      link rel="stylesheet" type="text/css" href="include/stylesheet.css">
        <
      link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> 
         
        <
      meta http-equiv="refresh" content="5" />
        </
      head>
        <
      body>
        <
      title>Angemeldet in Sammelgruppe:XXX_98</title><H1In Gruppe XXXXangem.:</h1><div class='Tabelle1'><table class='Table1'
        <
      tr>
        <
      th>Rufnummer</th>
        <
      th>Name</th>
        </
      tr><tr class="online-status"><td></td><td></td></tr><tr class="online-status"><td></td><td></td></tr><tr class="online-status"><td></td><td></td></tr><tr class="online-status"><td></td><td></td></tr><tr>
        <
      td>Gesamt Verf&uuml;gbar:</td>
        <
      td><center><b>4</b></center></td>
        </
      tr></table></div><body>
        </
      html

      Kommentar


      • #4
        Bezüglich deines Hinweises auf EVA, vielen DAnk dafür, das werde ich mir mal in Ruhe durchlesen müssen.

        Ich hatte hier im Forum schon mal ähnliches zu diesem Thema gefragt, da war der Code so okay. Klar strenggenommen springe ich ja immer wieder aus dem PHP raus und wieder rein.

        Kommentar


        • #5
          PHP-Code:
          echo"<td>$tname</td>"
          Wo soll denn $tname herkommen? Dreh doch mal dein error_reporting hoch, siehe debugging Link oben.

          Ich würde mal sagen du greifst falsch auf die Elemente zu.. $response ist da das Array das du durchlaufen willst ... Versuch mal so:

          PHP-Code:
          foreach ($response as $LineGroup) {
              echo 
          $LineGroup->row->tname// XXXX, Matthias, XXX,XXX

          https://eval.in/454700

          Klar strenggenommen springe ich ja immer wieder aus dem PHP raus und wieder rein.
          Darum gehts nicht.. Dein HTML-Code gehört zur Ausgabe und du hast zB den DB connect darin, das ist nicht sauber.

          Kommentar


          • #6
            Hallo das
            PHP-Code:
            echo"<td>$tname</td>"
            War noch aus nem versuch. Ist schon wieder raus.

            Wenn ich das umsetzte was du mir geschrieben hast. Kommt nichts bei raus. Die Felder bzw die AUsgabe bleibt leer.

            Kommentar


            • #7
              Noch ein Ergänzung.

              Mit eingeschaltetem Debugging bekomme ich wenn Null
              angezeigt wird den Fehler das in Zeile 54 was mit $row nicht stimmt. Foreach wird auch angemahnt.

              Kommentar


              • #8
                Ich habe irgendwie die Befürchtung das bei einem Eintrag die Rückgabe anders verarbeitet werden muss.

                Kommentar


                • #9
                  angezeigt wird den Fehler das in Zeile 54 was mit $row nicht stimmt. Foreach wird auch angemahnt.
                  Gehts etwas genauer?

                  Zeig mal ein Dump mit einem und mit zwei Einträgen.

                  Kommentar


                  • #10
                    Wenn nur ein Inhalt ist kommt dies hier :

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 57

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 58

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 57

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 58

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 57

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 58

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 57

                    Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 58
                    Das ist Zeile 57 und 58

                    PHP-Code:
                    echo'<td>' substr($LineGroup->dnorpattern,1) . '</td>';
                       echo
                    "<td>$LineGroup->tname</td>"

                    Kommentar


                    • #11
                      Mein funktionierendes Beispiel sah auch anders aus:

                      Zitat von hausl Beitrag anzeigen
                      PHP-Code:
                      foreach ($response as $LineGroup) {
                          echo 
                      $LineGroup->row->tname// XXXX, Matthias, XXX,XXX

                      Zeig mal deinen aktuellen Code und ein Dump mit zwei Einträgen

                      Kommentar


                      • #12
                        wo ?

                        Kommentar


                        • #13
                          https://eval.in/454745

                          Kommentar


                          • #14
                            Ich war schon wieder wo anders sorry

                            Habe das mal so gebaut:

                            PHP-Code:
                            foreach($response as $LineGroup) {
                                  
                            $zahlverfugbar ++;
                               echo
                            '<tr class="online-status">';
                               echo
                            '<td>' substr($LineGroup->row->dnorpattern,1) . '</td>';
                               echo
                            '<td>' . ($LineGroup->row->tname) . '</td>';
                               echo
                            '</tr>';
                              } 
                            Ich nehm ja an das Teil nimmt mich mit Absicht auf den Arm!

                            Habe ich nun einen Eintrag drin geht es wie gewollt. Sind mehrere drin. Spinnt es wieder wie vorher ....


                            Der Debugger sagt dann:

                            Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 58

                            Notice: Trying to get property of non-object in /var/www/cisco/andtek.php on line 59

                            Kommentar


                            • #15
                              Ich nehm an ich muss da einen MIx aus beiden machen..

                              Bei einem EIntrag:
                              PHP-Code:
                              $response as $LineGroup 
                              Bei mehreren:
                              PHP-Code:
                              $response->return->row as $LineGroup 

                              Kommentar

                              Lädt...
                              X