2009
PROBLEM:
Jak zrobić na mojej www, aby w formularzu opcje w liście rozwijalnej pojawiały się dynamicznie i były pobierane z bazy danych?
efekt ma wyglądać mniej więcej tak:
ROZWIĄZANIE:
Tworzymy sobie w bazie tabelę o nazwie jakiej tam już chcemy, i w tabeli następujące kolumny: id_cośtam i nazwa_czegośtam.
Ja zrobiłem pole wyboru z prędkościami dostępu do Internetu dla użytkowników.
CREATE TABLE `predkosc` (
`id_predk` mediumint(9) NOT NULL auto_increment,
`nazwa_predk` varchar(5) NOT NULL,
KEY `id` (`id_predk`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=14 ;
--
-- Zrzut danych tabeli `predkosc`
--
INSERT INTO `predkosc` VALUES (1, '160');
INSERT INTO `predkosc` VALUES (2, '160+');
INSERT INTO `predkosc` VALUES (3, '320');
INSERT INTO `predkosc` VALUES (4, '320+');
INSERT INTO `predkosc` VALUES (5, '640');
INSERT INTO `predkosc` VALUES (6, '640+');
INSERT INTO `predkosc` VALUES (7, '1024');
INSERT INTO `predkosc` VALUES (8, '1024+');
INSERT INTO `predkosc` VALUES (9, '1536');
INSERT INTO `predkosc` VALUES (10, '1536+');
Ale jak wiadomo może się tam znaleźć co tylko się komu podoba. W mojej bazie wygląda to tak:
teraz tworzę sobie nowy pliczek z rozszerzeniem .php w liku tym łączę się do bazy
$polacz = @mysql_connect('adres_do_bazy', 'user_bazy', 'hasło') or die ("Nie udało się połączyć do bazy danych");
$wybierz_baze = @mysql_select_db ("nazwa_bazy") or die ("Nie udało się wybraś bazy danych");
a gdzieś w środku tworzę formularz:
<TR><TD>Prędkosć: </TD><TD><select name="id_predk">
{php}
$wynik_predk = mysql_query ("SELECT * FROM predkosc ;");
while ($rekord = mysql_fetch_assoc ($wynik_predk))
{
$id_predk = $rekord['id_predk'];
$nazwa_predk = $rekord['nazwa_predk'];
print '<option value='.$id_predk.'> '.$nazwa_predk.'</option>';
} ;
print" </TD>\n";{/php}
</select></TR>
$nazwa_predk - wpisuje każdy rekord który znajdzie w tabeli predkosc
$id_predk - wypisuje id prędkości których oczywiście nie widać bo po wybraniu to właśnie ta wartość zostanie wysłana w formularzu.
Po dodaniu kolejnej wartości w bazie, auto inkrementacja sprawi, że id_predk zwiększy się o 1 a w formularzu na www dostaniemy o jedną opcję więcej ![]()






