May 13
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:

lista wyboru wygenerowana automatycznie

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:

moje kolumny wypełnione danymi

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 :-)

2931 hits
blipnij flaker Nasza Klasa

0 Comments

Display comments as(Linear | Threaded)
  1. No comments

Add Comment


Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Gravatar, Identica, MyBlogLog, Monster ID, Twitter author images supported.
BBCode format allowed