如何通过输入从数据库中获取某行的 id


How to get id of a certain row from DB through input?

我使用 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
    ]);
}

我该怎么做?

将表单更改为以下内容:

<?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
    ]);
}

在代码中使用以下示例...

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。

希望这对你有用。