2012-08-22 90 views
0

正确的我得到这个工作,但由于某种原因,我的循环仍然显示错误的价值观......问题,我的Joomla左连接mysql的

$db = JFactory::getDBO(); 
    $query = "select * from jos_gerencia_vendas AS a LEFT JOIN jos_gerencia_clientes AS b ON b.Id=a.id_cliente where a.id_edicao = ".$iddaedicao." order by b.nomecliente ASC"; 

    $db->setQuery($query); 
    $list = $db->loadObjectList(); 
    foreach ($list as $item) 
      { 
      $Id = $item->Id; 
      $id_venda = $item->id_venda; 
      $id_edicao = $item->id_edicao; 
      $id_vendedor = $item->id_vendedor; 
      $id_cliente = $item->id_cliente; 
      $id_produto = $item->id_produto; 
      $data_insercao = $item->data_insercao; 
      $pagina = $item->pagina; 

我需要检索在foreach内部jos_gerencia_vendas的$ id变量循环,任何线索?

+0

没有试图表明值。你什么意思?这段代码似乎在循环并替换变量。你在$ pagina = $ item-> pagina之后做了什么? ? – themis

+0

如果你不能得到id为什么你不使用别名到表中,并指定你需要由别名引导的正确的ID – themis

+0

我后来显示值,没有放在这里,因为会太大,我是只是显示我如何检索变量,以及如何检索别名?我有点新的PHP编程,只知道的基础知识 –

回答

0

您可以使用别名来查询检索信息像这样

$query = "select a.id as id,a.col1 as id_venda,a.col2 as id_edicao,b.col1 as id_vendedor from jos_gerencia_vendas AS a LEFT JOIN jos_gerencia_clientes AS b ON b.Id=a.id_cliente where a.id_edicao = ".$iddaedicao." order by b.nomecliente ASC"; 

    $db->setQuery($query); 
    $list = $db->loadObjectList(); 
    foreach ($list as $item) 
      { 
      $Id = $item->Id; 
      $id_venda = $item->id_venda; 
      $id_edicao = $item->id_edicao; 
      $id_vendedor = $item->id_vendedor; 
在你的代码
0

如果你在两个表上都有一个名为Id的列,那么当你得到$ item-> Id时会不明确。你可以在mysql控制台或phpmyadmin上运行查询来查看它是否抛出任何错误?

+0

是的,这是,我已经测试,有没有其他的选择呢?任何帮助? –

+0

当你直接在mysql上运行你时,它向你展示了正确的结果,如果它引发模糊错误而不是选择*,那么只需指定每个表的所需列。例如:'选择a.id作为id_venda,a.id_edicao作为id_edicao,b.columName作为myColumnt ...' – javier