Hente data fra form via for-løkke
Jeg roder med et script der skal hjælpe brugeren med at oprette en tabel. Brugeren angiver hvor mange felter der skal være i tabellen, hvorefter følgende script genererer input formen:******FORM SCRIPT START*********
echo "<form action='dbadmin.php?action=create_table_do' method=post onsubmit='return ValiderForm_Create_Step2(this);'>";
echo "<input type=hidden name=table_name value='".$_POST['table_name']."'>";
echo "<input type=hidden name=number_fields value='".$_POST['number_fields']."'>";
echo "<table align=center>";
for ( $i = 0; $i < $_POST['number_fields']; $i=$i+1 )
{
echo "<tr>";
//Field name
echo "<td><input type=text name='field_$i' value=''></td>";
//Data type
echo "<td>";
echo "<select size=1 name='type_$i'>";
echo "<option value='varchar'>VARCHAR</option>";
echo "<option value='char'>CHAR</option>";
echo "<option value='text'>TEXT</option>";
echo "<option value='tinytext'>TINYTEXT</option>";
echo "<option value='mediumtext'>MEDIUMTEXT</option>";
echo "<option value='longtext'>LONGTEXT</option>";
echo "<option value='date'>DATE</option>";
echo "<option value='datetime'>DATETIME</option>";
echo "<option value='timestamp'>TIMESTAMP</option>";
echo "<option value='time'>TIME</option>";
echo "<option value='year'>YEAR</option>";
echo "<option value='int'>INT</option>";
echo "<option value='tinyint'>TINYINT</option>";
echo "<option value='smallint'>SMALLINT</option>";
echo "<option value='mediumint'>MEDIUMINT</option>";
echo "<option value='bigint'>BIGINT</option>";
echo "<option value='float'>FLOAT</option>";
echo "<option value='double'>DOUBLE</option>";
echo "<option value='decimal'>DECIMAL</option>";
echo "<option value='blob'>BLOB</option>";
echo "<option value='tinyblob'>TINYBLOB</option>";
echo "<option value='mediumblob'>MEDIUMBLOB</option>";
echo "<option value='longblob'>LONGBLOB</option>";
echo "<option value='enum'>ENUM</option>";
echo "<option value='set'>SET</option>";
echo "</select>";
echo "</td>";
//Length/Value
echo "<td><input type=text name='length_$i' value=''></td>";
//Null value
echo "<td>";
echo "<select size=1 name='null_$i'>";
echo "<option value='not null'>NOT NULL</option>";
echo "<option value='null'>NULL</option>";
echo "</select>";
echo "</td>";
//Default value
echo "<td><input type=text name='default_$i' value=''></td>";
//Auto increment
echo "<td class=TDCenter><input type=checkbox name='auto[]'></td>";
//Primary key
echo "<td class=TDCenter><input type=radio name='primary_key' value='$i'></td>";
echo "</tr>";
}
echo "<tr><td> </td></tr>";
echo "<tr><td colspan=5 class=TDCenter><input type=submit value='Create table'></td></tr>";
echo "</table>";
echo "</form>";
******FORM SCRIPT SLUT*********
I det følgende prøver jeg så at opfange brugerens input, men jeg løber ind i problemer omkring brugen af '$i':
$table_name = $_POST['table_name'];
$number_fields = $_POST['number_fields'];
$primary_key = $_POST['primary_key'];
$strSQL = "CREATE TABLE $table_name (";
for ( $i = 0; $i < $number_fields; $i=$i+1 )
{
$strSQL = $strSQL." ".$_POST['field_$i']." ".$_POST['type_$i'];
if ($_POST['length_$i'] != "")
{
$strSQL = $strSQL."(".$_POST['length_$i'].")";
}
if ($_POST['null_$i'] == "not null")
{
$strSQL = $strSQL." NOT NULL ";
}
if ($_POST['auto[$i]'] == "1")
{
$strSQL = $strSQL." AUTO_INCREMENT ";
}
$strSQL = $strSQL.", ";
}
$strSQL = $strSQL." PRIMARY KEY($primary_key))";
echo $strSQL;
Eksempel på fejlmeddelelse: Undefined index: type_$i
