更新多行中使用PHP和SQL

我的目标填充一个WebForm的同桌是创建一个动态网页,返回所有记录在表中满足给定的标准,并使用它们来填充网页表单。然后,用户可以更改按照自己的意愿,并按下一个按钮,更新整个表。更新多行中使用PHPSQL

在下面我想列出所有事件的例子,开始时间将出现在一个可编辑的文本框,当我按下提交应更新所有的值。

我已经创建了一个样本:

$query = "SELECT * FROM Events"; 

$result = mysqli_query($dbc, $query) ;

if (mysqli_num_rows($result) > 0)

{

echo '<form action="update_events.php" method="post">>';

echo '<table><tr>';

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))

{

echo '<td>' . $row['Event_Name'] .' </td>'.

'<td>' . $row['Event_Date'] .'</td>'.

'<td><input name="'. $row['Event_ID'] .'" type="text" value="'$row['Event_Start_Time'] .'"></td>';

echo '</tr>';

}

echo '</table>';

echo ' <input type="submit" value="Submit"></form>';

mysqli_close($dbc) ;

}

else

{

echo '<p>There are currently no events.</p>' ;

}

我找不出我们如何获得的update_events.php的处理工作,任何帮助,将不胜感激。

foreach(????){ 

$sql = "UPDATE Events SET Event_Start='$Event_Start' WHERE id='$Event_ID'";

mysqli_query($dbc, $sql)

}

回答:

你真的想保持你的POST变量是静态的,它使生活更轻松。不要试图用一个变量来存储两个值,他们每个人一个。

当你提交你要循环的话很有道理提交他们的阵列多个值到服务器上,所以这样的事情:

$i=0; 

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC))

{

echo '<td>' . $row['Event_Name'] .' </td>'.

'<td>' . $row['Event_Date'] .'</td>'.

'<td><input name="event['.$i.'][start]" type="text" value="'$row['Event_Start_Time'] .'"><input name="event['.$i.'][ID]" type="hidden" value="'. $row['Event_ID'] .'"></td>';

echo '</tr>';

$i++;

}

现在你的形式将提交所有的事件多维数组,你可以在$_POST['event']和遍历检索它做你的数据库更新这样的:

$stmt = $this->mysqli->prepare("UPDATE Events SET Event_Start=? WHERE id=?"); 

$stmt->bind_param('ss', $start, $id);

foreach ($_POST['event'] as $event) {

$start = $event['start'];

$id = $event['ID'];

$stmt->execute();

}

此代码使用准备好的语句的数据库插入,您所使用的方法是不安全的,让你容易受SQL注入影响。你应该阅读Mysqli准备好的陈述并开始使用它们。

以上是 更新多行中使用PHP和SQL 的全部内容, 来源链接: utcz.com/qa/257440.html

回到顶部