PDA

Zobacz pełną wersję : złączenie tabel - błąd



kmpl
25-06-2012, 10:48
Witam,

Kiedy w tabeli wyświetlam rekordy na stronie frontowej z jednej głównej tabeli to jest OK.
Problem jest kiedy dokonam złączenia jeszcze 3 tabel.
Może jest problem ze złączeniem lub foreach-em.

models/ewid.php


<?php
/**
* @package ewid
* @subpackage C:
* @author {@link }
* @author Created on 30-May-2012
* @license GNU/GPL
*/

//-- No direct access
defined('_JEXEC') || die('=;)');


jimport('joomla.application.component.model');

/**
* Ewid Model.
*
* @package Ewid
* @subpackage Models
*/
class EwidModelEwid extends JModel
{
/**
* Gets the Data.
*
* @return string The greeting to be displayed to the user
*/
public function getData()
{
$id = JRequest::getInt('id');
$db = JFactory::getDBO();
$query = "SELECT 'a.nazwisko, c.nazwa as nazwajw, b.nazwa, a.od, a.do, a.miejsce, d.dok_nazwa, a.opis'
FROM #__ewid As a,
LEFT JOIN #__ewid_rodzaje As b ON a.id_nazwa = b.id
LEFT JOIN #__ewid_jednostki AS c ON a.id_jednostki = c.id
LEFT JOIN #__ewid_rodzaj_dokumentu AS d ON a.id_rodzaj_dok = d.id";


$db->setQuery($query);
$data = $db->loadObject();

return $data;
}//function
}//class


views/ewid/tmpl/default.php


<?php
/**
* @package Ewid
* @subpackage C:
* @author {@link }
* @author Created on 30-May-2012
* @license GNU/GPL
*/

//-- No direct access
defined('_JEXEC') || die('=;)');


JHTML::stylesheet('default.css', 'components/com_ewid/assets/css/');

?>
<div id="com_ewid_content">
<h1 class="componentheading">ewid</h1>

</div>

<?php
$db = JFactory::getDBO();
$query = "SELECT 'a.nazwisko, c.nazwa as nazwajw, b.nazwa, a.od, a.do, a.miejsce, d.dok_nazwa, a.opis'
FROM #__ewid As a,
LEFT JOIN #__ewid_rodzaje As b ON a.id_nazwa = b.id
LEFT JOIN #__ewid_jednostki AS c ON a.id_jednostki = c.id
LEFT JOIN #__ewid_rodzaj_dokumentu AS d ON a.id_rodzaj_dok = d.id";

// Executes the current SQL query string.
$db->setQuery($query);
// returns the array of database objects
$list = $db->loadObjectList();
// create the list of titles
foreach ($list as $item) {
$item_title = $item->title;

//echo $item_title.'<br />';

}

$db->setQuery($query);
$row = $db->loadObjectList();

echo "<table>";
echo "<tr><th>Nazwisko</th><th>Jednostka</th><th>Rodzaj kursu</th><th>Termin od</th><th>Termin do</th><th>Miejsce</th><th>Dokument</th><th>Opis</th>";
foreach ($list as $item) {
echo "<tr>";
echo "<td><a href='#".$item->nazwisko."'>".$item->nazwisko."</a></td>";
echo "<td>".$item->nazwajw."</td>";
echo "<td>".$item->nazwa."</td>";
echo "<td>".$item->od."</td>";
echo "<td>".$item->do."</td>";
echo "<td>".$item->miejsce."</td>";
echo "<td>".$item->dok_nazwa."</td>";
echo "<td>".$item->opis."</td>";
echo "</tr>";
}
echo "</table>";
?>


---------- Post dodany 25-06-2012 o 08:48 ---------- Poprzedni post był 24-06-2012 o 13:16 ----------

Problem rozwiązany.

zwiastun
25-06-2012, 10:52
@kmpl - na błędach uczyć się mogą też inni. Sam rozwiązałeś swój problem zgłoszony na forum, opisz skąd się wziął i jak sobie poradziłeś.

kmpl
25-06-2012, 11:43
Problem był w zapytaniu (zlikwidowałem "ciapki" i przecinek).



$query = "SELECT 'a.nazwisko, c.nazwa as nazwajw, b.nazwa, a.od, a.do, a.miejsce, d.dok_nazwa, a.opis'
FROM #__ewid As a,
LEFT JOIN #__ewid_rodzaje As b ON a.id_nazwa = b.id
LEFT JOIN #__ewid_jednostki AS c ON a.id_jednostki = c.id
LEFT JOIN #__ewid_rodzaj_dokumentu AS d ON a.id_rodzaj_dok = d.id";




$query = "SELECT a.nazwisko, c.nazwa as nazwajw, b.nazwa, a.od, a.do, a.miejsce, d.dok_nazwa, a.opis
FROM #__ewid As a
LEFT JOIN #__ewid_rodzaje As b ON a.id_nazwa = b.id
LEFT JOIN #__ewid_jednostki AS c ON a.id_jednostki = c.id
LEFT JOIN #__ewid_rodzaj_dokumentu AS d ON a.id_rodzaj_dok = d.id";