2012-08-22 127 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