2013-03-23 91 views
0

我有我的foreach中的以下....這個工作,但也有2套每$值的值,它只能顯示第一的foreach循環TD值

<?php 
$info = simplexml_load_file("https://api.website.co.za/ACCESS_GetAccountSessions?"); 
echo "<ul info>"; 

foreach ($info->sessions as $sessions): 
$count = $sessions->{'session-count'}; 
$ip = $sessions->session->{'ip-address'}; 
$nas = $sessions->session->{'nas-ip-address'}; 
$port = $sessions->session->{'nas-port'}; 
$phone = 'N/A'; 

      ?> 


<?php 
        echo '<tr>', 

       '<td class="blockcontentwhite sessionicon">', 
       '<td class="blockcontentwhite center">' . ("$ip") . '</td>', 
       '<td class="blockcontentwhite center">' . ("$nas") . '</td>', 
       '<td class="blockcontentwhite center">' . ("$port") . '</td>', 
       '<td class="blockcontentwhite center">' . ("$phone") . '</td>', 

        '</tr>'; 
        endforeach; 
        ?> 

所以基本上在1日的表內排顯示$ ip,$ nas,$ port和$ phone但是它沒有在第二行顯示第二個值,有什麼想法?

謝謝夥計們

+4

你能告訴我們完整的代碼,所以我們可以看到正在運行的循環? – 2013-03-23 08:23:34

+0

確保你正在執行的數組循環裏面有第二個元素。 – 2013-03-23 08:27:39

+1

你可以顯示整個foreach循環嗎? – 2013-03-23 08:27:50

回答

2

您試圖以數組的形式訪問對象。 $info->sessions類型爲SimpleXMLElement Object,其中包含(作爲屬性)您希望在該foreach中使用的數組。

您的foreach(foreach ($info->sessions as $sessions):)更改爲foreach ($info->sessions->session as $sessions):和:

$count = $sessions->{'session-count'}; 
$ip = $sessions->session->{'ip-address'}; 
$nas = $sessions->session->{'nas-ip-address'}; 
$port = $sessions->session->{'nas-port'}; 
$phone = 'N/A'; 

到:

$count = $info->sessions->{'session-count'}; 
$ip = $sessions->{'ip-address'}; 
$nas = $sessions->{'nas-ip-address'}; 
$port = $sessions->{'nas-port'}; 
$phone = 'N/A'; 
+0

葉先生,做到了,謝天謝地,今天我好像失明瞭:/ – Lefty 2013-03-23 08:50:57

+0

完成:)再次感謝 – Lefty 2013-03-23 08:53:24

+0

@Lefty,沒問題。 – Shoe 2013-03-23 08:53:43

0

我覺得Jueecy是正確的關於你問到的問題。

但我注意到一些看起來可能是問題之外的東西。它看起來像代碼將生成多個表,但我認爲你只需要在同一個表中的多行。

我會建議將您的foreach到你在哪裏產生的行:

<?php 
$info = simplexml_load_file("https://api.website.co.za/ACCESS_GetAccountSessions?"); 
echo "<ul info>"; 
?> 

<input type="hidden" name="ctl00$ctl00$contentDefault$contentControlPanel$hdnIsSecure"  id="ctl00_ctl00_contentDefault_contentControlPanel_hdnIsSecure" value="false" /> 
<table id="active_sessions_table" class="blocktable centered" cellpadding="0" cellspacing="0"> 
<tr class="blockheader"> 
<td id="active_sessions_title" class="left" colspan="2"> 
     <label class="floatleft">Current connections</label></td> 
</tr> 
<tr id="trconnections"> 
<td class="blockcellnopadding" colspan="2"> 
<table cellpadding="4" cellspacing="0" width="100%" style="border-bottom:solid 1px #bfbfbf;"> 
     <tr> 
      <td class="columntitle center">&nbsp;</td> 
      <td class="columntitle center">IP Address</td> 
      <td class="columntitle center">NAS IP Address</td> 
      <td class="columntitle center">Line Port</td> 
      <td class="columntitle center">Telephone Number</td> 
     </tr> 
<?php 
     foreach ($info->sessions->session as $session) { 
      $ip = $session->{'ip-address'}; 
      $nas = $session->{'nas-ip-address'}; 
      $port = $session->{'nas-port'}; 
      $phone = 'N/A'; 

      echo '<tr>', 
      '<td class="blockcontentwhite sessionicon">', 
      '<td class="blockcontentwhite center">' . ("$ip") . '</td>', 
      '<td class="blockcontentwhite center">' . ("$nas") . '</td>', 
      '<td class="blockcontentwhite center">' . ("$port") . '</td>', 
      '<td class="blockcontentwhite center">' . ("$phone") . '</td>', 

      '</tr>'; 
     }; 
?>