使用while循环在Joomla中启动会话

时间:2014-10-30 16:12:17

标签: php session joomla while-loop

我有2个数据库,一个安装了Joomla,另一个安装了我的个人数据。

我需要与这两个数据库同时工作。

现在我使用此查询在我的数据库中执行while

 $query="Select * From lista where user_id='$id'"; 
 $result = mysql_query($query) or die(mysql_error());
 while($row=mysql_fetch_array($result))
 {
     $ID_STRUCTURE=$row['ID'];
     ECHO '<P>Modifica <a href="..../test/index.php/modifica">'.$row['struttura'].'</P>';
     $session =& JFactory::getSession();
     $session->set( 'myvar', $ID_STRUCTURE );
 }

当我进入页面/test/index.php/modifica时,我使用此代码:

  $session =& JFactory::getSession();
  $myvar= $session->get('myvar');
  echo $myvar;

我必须只获取通讯员$ID_STRUCTURE的{​​{1}}。

如果我在$row['struttura']中使用数组而在另一页while中使用foreach,则会获得所有值。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

不要直接使用while循环。将其存储到数组或变量中,以便您可以反复使用它。现在它返回了最后一个值,因为while循环已经运行了。所以当你再次打电话时,它已经是最后的记录了。

$query="Select * FROM `lista` WHERE `user_id` = '$id'"; 
$result = mysql_query($query) or die(mysql_error());
$a_Array = array();
while($row=mysql_fetch_array($result))
{
    $a_Array['id'] = $row['ID'];
    $a_Array['link'] = '<P>Modifica <a href="..../test/index.php/modifica">'.$row['struttura'].'</P>';
}
$session =& JFactory::getSession();
$session->set( 'myvar', $a_Array);

现在使用foreach()循环来获取另一页上的所有数据。在该数组中的值是$ myvar [&#39; id&#39;]和$ myvar [&#39; link&#39;]。

foreach($myvar as $value){
echo $value['id'].$value['link'];
}

答案 1 :(得分:0)

当然,因为你总是在循环中覆盖它。您需要创建一个数组,或使该键成为唯一的。

while ($row = mysqli_fetch_array($result)) {
    $ID_STRUCTURE = $row['ID'];
    ECHO '<P>Modifica <a href="..../test/index.php/modifica">' . $row['struttura'] . '</P>';
    $myvarArray[] = $ID_STRUCTURE;
}
$session = & JFactory::getSession();
$session->set('myvar', $myvarArray);

使用mysqli或PDO代替mysql函数,因为它们已被弃用。