我使用php显示尽可能多的输入,表中包含许多值。
<?php foreach($videos as $videos_item): ?>
<div class="row video-input">
<input type="text" name="videos_inputs[]"
value="<?php echo 'http://www.youtube.com/watch?v=' . $videos_item['video_url']; ?>"
placeholder="Ссылка на видео" class="form__input">
<a href="<?php echo BASE_URL;?>/admin/delete_video.php?id=<?php echo $videos['id']; ?>"
class="form_video__delete">Удалить</a>
</div>
<?php endforeach;?>
但我还需要获取每一行的ID。
foreach ($videos_inputs as $val) {
$value = $val;
$add_videos = $db->prepare(
'UPDATE videos SET
video_url = :video_url
WHERE id = :id'
);
$add_videos->execute([
'video_url' => $value,
'id' => $video_id
]);
}
我该怎么做?
答案 0 :(得分:0)
将表单更改为:
<?php foreach($videos as $videos_item): ?>
<div class="row video-input">
<input type="text" name="videos_inputs[<?php echo $videos['id'];?>]"
value="<?php echo 'http://www.youtube.com/watch?v=' . $videos_item['video_url']; ?>"
placeholder="Ссылка на видео" class="form__input">
<a href="<?php echo BASE_URL;?>/admin/delete_video.php?id=<?php echo $videos['id']; ?>"
class="form_video__delete">Удалить</a>
</div>
<?php endforeach;?>
你的php代码更新:
foreach ($videos_inputs as $video_id => $val) {
$value = $val;
$add_videos = $db->prepare(
'UPDATE videos SET
video_url = :video_url
WHERE id = :id'
);
$add_videos->execute([
'video_url' => $value,
'id' => $video_id
]);
}
答案 1 :(得分:0)
在您的代码中使用以下示例...
SET @update_id := 0;
UPDATE some_table SET column_name = 'value', id = (SELECT @update_id := id)
WHERE some_other_column = 'blah' LIMIT 1;
SELECT @update_id;
注意:这将返回更新的行ID。
希望这对你有用。