Pisze sobie funkcje która ma za zadanie wygenerowanie listy select i zaznaczenie odpowiedniej pozycji (option) selected. Mam w bazie 2 tabele. W jednej są wyszstkie kategorie artykułów:
|id|nazwa_kategorii
a w drugiej artykuły:
|id|wpis|autor|kategoria
No i robie zapytanie do bazy:
SELECT id, kategoria FROM arty WHERE id='$id' UNION SELECT id, nazwa FROM arty_cat
Dzięki temu wybieram 2 rekordy z tabeli artykuów i wszystkie kategorie z tabeli kategorii artykułów.
No i następnie musze porównać którą kategorie posiada artykuł aby zrobić ją selected w pole a reszte nie, więc robie:
<?php Public Function Cat_Select( $id ) { $this -> db -> query( "SELECT id, kategoria FROM arty WHERE id='$id' UNION SELECT id, nazwa FROM arty_cat" ); while($array = $this -> db -> fetch_row()) { $tablica[] = $array; } for($i=0; $i<count($tablica); $i++) { if($tablica[0][1] == $tablica[$i][0]) { } else { } } } ?>
No i niby wszystko jest ok, a efekt jest taki:
<?php <option value="7">3</option> <option value="1">programowanie</option> <option value="2">grafika</option> <option value="3" selected>Inne</option> ?>
No i pierwszej pozycji wole nie powinno być a sie pojawie i nie wiem czemu :?
Dodatkowo dam printa tablicy $tablica:
<?php ( ( [0] => 7 [1] => 3 ) ( [0] => 1 [1] => programowanie ) ( [0] => 2 [1] => grafika ) ( [0] => 3 [1] => Inne ) ) ?>