gpt4 book ai didi

php - 发布表单并使用 mysql 更新多行

转载 作者:行者123 更新时间:2023-11-29 01:27:18 25 4
gpt4 key购买 nike

我搜索了整个网站,但还没有找到答案。公关也许我无法正确应用它。我有一个表格可以抓取所有附有特定 GALLERY_id 的照片。后端用户然后可以更改照片的标题并更改标签。提交表单后,查询应更新所有行。这是我到目前为止没有做任何事情的内容:

表格

if(isset($_GET['id']))
{

$id=$_GET['id'];
$result = $db->prepare("SELECT * FROM photos WHERE gallery_id = :gallery_id ");
$result->bindParam(':gallery_id', $id);
$result->execute();

echo '<form action="" method="POST">';
echo "<ul id='photos'>";

for ($i = 0; $row = $result->fetch(); $i++)
{

$id = $row['id'];
$title = $row['title'];
$tags = $row['tags'];
$src = $row['src'];

echo "<li><a class='lightbox' href='images/$src'><img src='images/$src' id='$id' alt='$title' /></a><br />";
echo "<input type='text' name='photo_title' value='$title' /><br />";
echo "<input type='text' name='photo_tags' value='$tags' />";
echo "<input type='hidden' name='photo_id' value='$id' />";
echo "</li>";
}

echo "</ul>";

}

?>
<div style="clear:both"></div>
<input type="submit" name="changeTitle" value="Save"/>
</form>

更新查询

if (isset($_POST['changeTitle']))
{
foreach ($_POST as $p)
{
$id=$p['photo_id'];
$title=$p['photo_title'];
$tags=$p['photo_tags'];


$sql = "UPDATE photos SET title=?, tags=? WHERE id=?";
$query = $db->prepare($sql);
$query->execute(array($title, $tags, $id));

}
}

最佳答案

由于您有多个具有相同名称的 html 字段,您必须将它们作为数组提交:

echo "<input type='text' name='photo_title[]' value='$title' /><br />";
echo "<input type='text' name='photo_tags[]' value='$tags' />";
echo "<input type='hidden' name='photo_id[]' value='$id' />";

提交后,遍历任何数组变量,如

foreach ($_POST['photo_id'] as $key => $photo_id) {
$id = $photo_id;
$title = $_POST['photo_title'][$key];
$tags = $_POST['photo_tags'][$key];

$sql = "UPDATE photos SET title=?, tags=? WHERE id=?";
$query = $db->prepare($sql);
$query->execute(array($title, $tags, $id));
}

关于php - 发布表单并使用 mysql 更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36361410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com