如何通过输入从DB获取某一行的id?

时间:2016-03-11 10:57:13

标签: php html mysql

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

我该怎么做?

2 个答案:

答案 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。

希望这对你有用。