PDA

Zobacz pełną wersję : Złączenie tabel - zaplecze



kmpl
23-09-2013, 16:32
Witam,

Nie mogę sobie poradzić z wyświetlaniem danych z kilku tabel po stronie administracyjnej. Chcę za pomocą pla wyboru dokonać edycji z listy rekordów. Nie mam jednak przekazanego id do edycji.
Kod działa kiedy nie robię złączenia tabel:


public function pobierzDane($szukana) {
/*
** Pobieranie danych z bazy danych.
** $szukana - nazwa tabeli

$db =& JFactory::getDBO();

$db->setQuery($query);
return $db->loadRowList();
*/
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$db =& JFactory::getDBO();
$query = 'SELECT * FROM ' . $db->getPrefix() . $szukana;

$db->setQuery($query);
return $db->loadRowList();

}





public function pobierzLS($szukana) {
/*
** Pobieranie danych z bazy danych. Parametry:
** $szukana - warunek wyszukiwania
*/
for ($i=0; $i<count($szukana);$i++) {
$current = $szukana[$i];
$db =& JFactory::getDBO();
$query = 'SELECT * FROM '.$db->getPrefix().'lok_sprzetu WHERE `id_l_s` = '.$current;
$db->setQuery($query);
$load_edit[] = $db->loadRowList();
}
return $load_edit;
}


Kiedy złącze kilka tabel żeby wiedzieć co chcę edytować to nie przekazuje mi żadnego id do edycji - kod:


public function pobierzDane($szukana) {
/*
** Pobieranie danych z bazy danych.
** $szukana - nazwa tabeli

$db =& JFactory::getDBO();

$db->setQuery($query);
return $db->loadRowList();
*/
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$db =& JFactory::getDBO();

$query = "SELECT b.nr_pomieszczenia, c.nazwa, c.indeks, c.JIM
FROM #__lok_sprzetu AS a
LEFT JOIN #__pomieszczenia AS b ON a.id_pom = b.id_pomieszczenia
LEFT JOIN #__sprzet AS c ON a.id_sprzet = c.id_sprzetu";
$db->setQuery($query);
return $db->loadRowList();

}
}

Już nie wiem o co chodzi. Może ktoś podpowie co zrobić?

KES
23-09-2013, 17:34
Może masz błąd w zapytaniu. Aby sprawdzić czy nie masz błędu, użyj:


$error = $db->getErrorMsg(); // w joomla 2.5, jeżeli pomyliłeś dział to używj "wyjątków"


też nie rozumiem:


$query = $db->getQuery(true);

po co chcesz tworzyć nowe zapytanie przy pomocy framworka, a linijke później go nadpisujesz ? przepisz to zapytanie przy pomocy metody dostępnych w joomla.