[PHP+MySQL] Formularz multiple

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Dowhook
Posty: 1
Rejestracja: ndz mar 21, 2004 2:52 pm

[PHP+MySQL] Formularz multiple

Post autor: Dowhook »

Zrobiłem formularz z opcją wielokrotnego wyboru, jednak gdy wysyłam te dane z formularza do bazy danych zapisuję się tylko ostatnia wybrana opcja. Czasami kiedy podglądam tabele w bazie danych, to albo nic nie ma w kolumnie, albo jest napisane Array. Chciałbym aby ktoś mi pokazał jak zmienić ten skrypt z użyciem tablic, a potem żeby wszystkie te wybrane opcje były umieszczane w jednym wierszu w bazie danych.

Oto formularz:
Kod:

Kod: Zaznacz cały

<select size="9" name="bron" style="font-size: 8pt; font-family: Verdana; background-color: #FFFFFF; border: 1 solid #000000" multiple> 
  <option>SOPMOD M4</option> 
  <option>M9 Pistol</option> 
  <option>Special Purpose Rifle</option> 
  <option>M16A2</option> 
  <option>M4A1</option> 
  <option>M203</option> 
  <option>M249 SAW</option> 
  <option>M24</option> 
  <option>Barrett M82A1</option> 
</select> 
A to skrypt dodawania danych do bazy i wyświetlania danych:
Kod:
[php]<?
$db_name = "xxx";
$table_name = "xxx";
$connection = @mysql_connect("localhost", "xxx", "xxxxx") or die("Próba połaczenia nie powiodła się.");
$db = @mysql_select_db($db_name, $connection) or die("Wybór bazy danych nie powiódł się.");
$sql = "INSERT INTO $table_name
(id, nick, ranga, team, email, gg, bron, mapa)
VALUES
(\"\",
\"$nick\", \"$ranga\", \"$team\", \"$email\", \"$gg\", \"$bron\", \"$mapa\")
";
$result = @mysql_query($sql, $connection) or die("Wykonanie zapytania nie powiodło się.");
?>
<html>
<head></head><body>
<? print("$nick"); ?><br>
<? print("$ranga"); ?><br>
<? print("$team"); ?><br>
<? print("$email"); ?><br>
<? print("$gg"); ?><br>
<? print("$bron"); ?><br>
<? print("$mapa"); ?><br>
</body></html> [/php]
I jeszcze struktura tabeli bazy danych:
Kod:

Kod: Zaznacz cały

CREATE TABLE `xxx` ( 
  `id` int(11) NOT NULL auto_increment, 
  `nick` varchar(75) NOT NULL default '', 
  `ranga` varchar(50) NOT NULL default '', 
  `team` varchar(25) NOT NULL default '', 
  `email` varchar(100) NOT NULL default '', 
  `gg` varchar(50) NOT NULL default '', 
  `bron` varchar(100) NOT NULL default '', 
  `mapa` varchar(100) NOT NULL default '', 
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1 ; 

Z góry dzięki!
ODPOWIEDZ