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

Php 使用while循环在Joomla中启动会话,php,session,joomla,while-loop,Php,Session,Joomla,While Loop,我有两个数据库,一个装有Joomla,另一个装有我的个人数据 我需要与这两个数据库同时工作 现在,我使用以下查询在数据库中执行,同时执行: $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'];

我有两个数据库,一个装有Joomla,另一个装有我的个人数据

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

现在,我使用以下查询在数据库中执行
,同时执行

 $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 );
 }
我必须仅获取对应的
$row['struttura']
$ID\u结构

如果我在
while
中使用一个数组,在另一页
/test/index.php/modifica
中使用一个
foreach
,我将获得所有值


如何修复它?

不要直接使用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);

当然,因为您总是在循环中覆盖它。您需要创建一个数组,或者使密钥唯一

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);
while($row=mysqli\u fetch\u数组($result)){
$ID_结构=$row['ID'];
回声'

修改'.$row['struttura'].

'; $myvarArray[]=$ID\u结构; } $session=&JFactory::getSession(); $session->set('myvar',$myvarArray);

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

不要再使用mysql\u query()!它已被弃用!:)请使用PDO或MYsqli。你能给我一个例子吗?谢谢…所以我是php的初学者…我如何在另一页中执行foreach()循环?考虑到调用另一页中的会话,我使用此代码:$session=& jCuts::GeSession();myvar=$session->get('myvar');echo$myvar;我只需要引用结构I的ID_结构click@myfriend请参阅foreach的更新答案。您需要将$myvar设置为会话变量,其中包含数组,就像我在第一个示例中展示的那样。
foreach($myvar as $value){
echo $value['id'].$value['link'];
}
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);