2013-03-23 3 views
0

У меня есть следующий в моем Еогеаспе .... это работает, но есть 2 набора значений на $ значения, и это показывает только первыйЕогеаспа петля тда значение

<?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

Можете ли вы показать нам полный код, чтобы мы могли видеть, как вы работаете цикл? –

+0

убедитесь, что массив, на котором вы выполняете цикл, имеет второй элемент внутри него. –

+1

Можете ли вы показать весь цикл foreach? –

ответ

2

Вы пытаетесь получить доступ к объекту в виде массива. $info->sessions имеет тип SimpleXMLElement Object, который содержит (как свойство) массив, который вы хотите использовать в 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

Yip, вот и все, спасибо, я, кажется, сегодня слепой:/ – Lefty

+0

done :) Еще раз спасибо – Lefty

+0

@Lefty, без проблем. – Shoe

0

Я думаю Jueecy правильно в отношении вопроса вы спросили о.

Но я заметил что-то похожее, что может быть проблемой, кроме этого. Похоже, что код будет генерировать несколько таблиц, но я думаю, вам просто нужно несколько строк в одной таблице.

Я хотел бы предложить двигая Еогеасп вниз, где вы генерируете строки:

<?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>'; 
     }; 
?>