Mianowicie dodając firmę przyporządkowuje ją do odpowiednich kategorii.
W bazie mam 3 tabele:
firmy: tutaj wszelkie info o firmie
categories: wszystkie kategorie (catID, categoryName)
companycategories: tutaj jest tabela łącząca firmę z kategoriami. Dodając firmę do companycategories dodawane jest ID firmy(takie samo jak w tabeli firmy), id kategori(takie samo jak w categories) categoryName(też takie samo jak w categories) no i nazwa firmy (taka sama jak w firmy)
Zrobiłem to w ten sposób bowiem uczyłem się pisania aplikacji opierających się na relacjach w bazie danych, i mam nadzieję że dobrze zrobiłem to czego sie uczyłem.
Teraz nie potrafię wyciągnąć i połączyć tych danych, wszystko prócz kategorii wyciągam poprzez zapytanie:
public function get_all() { $sql = 'SELECT * FROM `firmy` ORDER BY `id`'; return $this->_db->query(Database::SELECT, $sql, FALSE) ->as_array(); }
Następnie controller:
$result = $company->get_all(); $this->template->companies = View::factory('page/panel/companies')->set('allcompanies', $result);
No i view:
for($id=0;$id<$c;$id++) { if($allcompanies[$id]['token'] == 0) { $color='red'; $submitcolor='green'; $aktywacja='nie'; $aktywdezaktyw = 'Aktywuj firme'; $value = 1; } else { $color='green'; $submitcolor='red'; $aktywacja='tak'; $aktywdezaktyw = 'Dezaktywuj firme'; $value = 0; } echo ' <div class="belka"><span class="b">Firma:</span> '.$allcompanies[$id]['name'].' | <span class="b">Data dodania:</span> '.$allcompanies[$id]['data'].' | <span class="b">Województwo:</span> '.$allcompanies[$id]['province'].' | <span class="b">Aktywowana:</span> <span style="color:'.$color.'">'.$aktywacja.' </span>| </div> <div class="firma"> <ul id="zarzadzanie"> <li><a href="#" title="krotki'.$allcompanies[$id]['id'].'">Krótki opis</a></li> <li><a href="#" title="dlugi'.$allcompanies[$id]['id'].'">Długi opis</a></li> <li><a href="#" title="resztadanych'.$allcompanies[$id]['id'].'">Reszta danych</a></li> </ul> //dalsza część................................................ </div> '; }
No i teraz nie wiem jak poprawnie wyświetlić w tej pętli kategorie. W tablicy $allcompanies nie ma kategorii i wyciągam je tak:
public function get_category() { $sql = 'SELECT companycategories.companyID, companycategories.companyName, categories.categoryID, categories.categoryName FROM companycategories, categories, firmy WHERE companycategories.companyID = firmy.id AND companycategories.catID = categories.categoryID '; return $this->_db->query(DATABASE::SELECT,$sql,FALSE)->as_array(); } //controller $resultcats = $company->get_category(); $this->template->companies = View::factory('page/panel/companies')->set('cats', $resultcats);
Generalnie dla kogoś kto nie zrozumie kodu frameworkowego. W pliku wyświetlającym firmę mam dwie tablice.
$allcompanies oraz $cats
I nie mam pojęcia jak pętlą for wybrać info z tych obu tablic. O ile z jednej jest to bezproblemowe to nie wiem jak "dobrać" odpowiednie dane z tablicy $cats
na dodatek aby pętla z tablicy $cats wybierała tylko kategorie z tym samym ID co ID w allcompanies czyli:
$allcompanies[$id]['id'] = $cats[$id]['id']
Przepraszam za nieudolne wytłumaczenie. Z góry dziękuje i pozdrawiam.