@miniven

Почему SQL запрос не дает нужного результата?

Пишу так:
$titles = $db->query("
	SELECT *
	FROM titles
")->fetchAll(PDO::FETCH_ASSOC);


Потом:
<?php var_dump($titles);?>

Получаю:
array(5) {
  [0]=>
  array(4) {
    ["id"]=>
    string(1) "0"
    ["title_name"]=>
    string(9) "dfgdfgdfg"
    ["title_color"]=>
    string(7) "#d12020"
    ["title_size"]=>
    string(2) "30"
  }
  [1]=>
  array(4) {
    ["id"]=>
    string(1) "1"
    ["title_name"]=>
    string(12) "Привет"
    ["title_color"]=>
    string(7) "#29a0d4"
    ["title_size"]=>
    string(2) "30"
  }
// И так далее...


Все точно так, как и должно быть. Такой же результат получаю в phpMyAdmin.

Проблема возникает с другой таблицей:

$timer = $db->query("
	SELECT *
	FROM timer1
")->fetchAll(PDO::FETCH_ASSOC)[0];


Тоже пишу
<?php var_dump($timer); ?>

Но теперь получаю такой вид:
array(7) {
  ["id"]=>
  string(1) "1"
  ["timer_btn"]=>
  string(12) "Кнопка"
  ["timer_color"]=>
  string(4) "#000"
  ["timer_date"]=>
  string(10) "2016-03-09"
  ["timer_price"]=>
  string(2) "16"
  ["timer_size"]=>
  string(2) "16"
  ["timer_title"]=>
  string(14) "нАДПИСЬ"
}


Хотя таблица выглядит следующим образом:
88a0cc9440a846c58833ede787264bcd.png

Если пишу этот запрос через phpMyAdmin, то выдает две строки. Почему тогда в браузере всего одна?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
[0]

Ну так вы выводите первую строку. Что вы ожидали получить?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vylegzhanin
$timer = $db->query("
  SELECT *
  FROM timer1
")->fetchAll(PDO::FETCH_ASSOC)[0];


Кажется ошибка в том, что ты берешь один элемент массива по индексу, в этой строке:
fetchAll(PDO::FETCH_ASSOC)[0]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы