PDO: обойти повторяющиеся результаты fetch и fetchAll

0

У меня есть таблица с четырьмя полями в ней. Я могу изменить свой запрос, чтобы показать мне, что я хочу, а это два из четырех полей. Я хочу, чтобы php сделал это для меня.

    $stmt=$db->query("select * from remote");
                $result=$stmt->fetch(PDO::FETCH_ASSOC);
                foreach($result as $row){
                        echo $row;
                }  

Это дает мне первую "строку" моей таблицы со всеми элементами в ней. Моя таблица - это что-то вроде

    --------------------------
    |id|name|position|my_box|
    --------------------------
    |1 |bear|3       |5     |

На данный момент у меня есть 4 ряда. С fetchAll я понятия не имею, как эхо их читать (не используя print_r). Как я могу напечатать, как Id => Значение и только Id или Value.

  • 0
    Вместо * используйте поля, которые вы хотите, id . Я не вижу столбец value . Я также просто зациклил бы fetch .
  • 0
    echo $row['name']
Показать ещё 3 комментария
Теги:
web-deployment
pdo

2 ответа

0
Лучший ответ

Выбирайте строки, while они существуют:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['id'], ' - ' ,$row['name'], '<br />';
}
  • 0
    Это сработало для меня, но как обобщить? Я имею в виду, если я не знал об идентификаторе и имени в моем случае?
  • 0
    Еще один вопрос ... в чем разница между тем, что вы выполняли извлечение в операторе while, когда я делал это раньше, и передавали его как $ result. Потому что я попытался выполнить ваш код, и мой компьютер вышел из строя (не хватило оперативной памяти) ..
0
<?php
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
    foreach ($row as $field => $value) {
        echo $field . ' => ' . $value . '<br>';
    }
}
  • 0
    fetchAll выбирает массив всех строк, поэтому $value это массив.
  • 0
    @u_mulder Согласовано, обновлено.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню