Mam formularz, którego ilość pól jest zależna od użytkownika. Przesyłam go metodą POST do pliku save.php, gdzie mam pętlę z instrukcjami wyświetlenia danych i zapisania rekordów do bazy. Problem w tym, ze choć dane wyświetlają się poprawnie, to do bazy danych zapisywany jest tylko jeden, pierwszy rekord.
Trochę kodu:
Najpierw kasuję istniejącą tabelę (w pliku z formularzem), żeby zaczynać zawsze od zera.
<?php if (!$con) { die('Could not connect: ' . mysql_error()); } // drop table mysql_select_db("bartosz_pub", $con); $sql = "DROP TABLE IF EXISTS football"; mysql_select_db( 'bartosz_pub' ); $retval = mysql_query( $sql, $con ); if(! $retval ) { die('Could not delete table: ' . mysql_error()); } mysql_close($con); ?>
Następnie w pliku wynikowym tworzę ją na nowo:
<?php if (!$con) { } // Create table $sql = "CREATE TABLE football ( team1 char(25), team2 char(25), channel char(15), date int, PRIMARY KEY(date), time varchar(4), display int )"; // Execute query ?>
No i mam pętlę, która uzupełnia (a przynajmniej powinna) bazę o wpisy:
<?php <span id="intelliTxt"><pre class="alt2" style="border: 1px inset; margin: 0px; padding: 6px; overflow: auto; width: 640px; height: 450px;">$counter = count($_REQUEST)/5; for ($i=1; $i<=$counter; $i++){ @$team1 = $_POST['team1'.$i]; @$team2 = $_POST['team2'.$i]; @$channel = $_POST['channel'.$i]; @$date = $_POST['theDate'.$i]; @$time = $_POST['time'.$i]; $save = "INSERT INTO football(team1,team2,channel,date,time,display) VALUES ('$team1','$team2','$channel','$date','$time','0');"; $save = "INSERT INTO football(team1,team2,channel,date,time) VALUES ('$team1','$team2','$channel','$date','$time');"; } ?>
No i pupa, że się tak wyrażę. W bazie jest tylko 1 rekord - pierwszy wiersz.
Formularz w praktyce jest na www.bartosz.dk/pub