通过php输入表单一次将多行插入sql数据库

时间:2014-03-25 15:04:43

标签: php html sql

我正在尝试记录赛车的结果,但我希望能够立即输入比赛的所有结果(而不是一个接一个地进行),但我似乎无法得到它工作。

以下代码:

输入表格:

{
    $reID = $row['reID'];
    $racerID = $row['racerID'];

    echo "<tr>";
    echo "<td>$reID<input type='hidden' name='reID' value='$reID'>"; 
    echo "<td>$racerID<input type='hidden' name='racerID' value='$racerID'>"; 

    echo"<td><input type='text' name='rank'>";
    echo"<td><input type='text' name='timetaken'>";     

}

SQL INSERT FORM:

$rank=$_POST['rank'];
$timetaken=$_POST['timetaken'];
$reID=$_POST['reID'];
$racerID=$_POST['racerID']; 

    $sql = mysql_query("INSERT INTO Racing (rank, timetaken, reID, racerID) VALUES ('$rank', '$timetaken', '$reID', '$racerID')");
    $result = mysql_query($sql);

这是如何工作的,我将选择一场比赛,然后选择该比赛中的特定事件,然后显示所有参赛者,我可以输入他们的等级和时间。同时隐藏的输入(racer no和raceevent也将进入每个结果的数据库)。

所以我试图立即输入所有racerID的所有等级和时间,有人可以帮我完成那个。

感谢。

EXTRA:

$reID = $_GET['reID'];
$result = mysql_query("SELECT * FROM RaceEventRacer WHERE reID = $reID");

while ($row = mysql_fetch_assoc($result))

2 个答案:

答案 0 :(得分:0)

首先,你必须解决你的php表单生成的一些问题...

所有ur输入元素都将具有相同的名称属性... 先纠正它

- 使用类似的东西

$cv=0;

while () {

    .......................
    .......................
    echo "<input name='racer_'.$cv>";  // in each repetition new name value, not the same



    $cv++;
}

答案 1 :(得分:0)

您应该使用name ='reID []',而不是使用name ='reID',与其他字段相同。未来的代码看起来像这样:

$ranks = $_POST['rank'];
$timetakens = $_POST['timetaken'];
$reIDs = $_POST['reID'];
$racerIDs = $_POST['racerID']; 

$sql = "INSERT INTO Racing (rank, timetaken, reID, racerID) VALUES";
$values = array();
foreach($ranks as $key => $rank) {
    $values[] = "('$rank', '{$timetakens[$key]}', '{$reIDs[$key]}', '{$racerIDs[$key]}')";
}
$sql .= implode(', ', $values);
    $query = mysql_query($sql);
相关问题