Задать вопрос
@kslv1

Как вывести не id элемента, а слово, которое к нему привязано?

Доброго времени суток!
Совсем недавно начал изучать работу с БД и решил по ходу обучения сразу применять знания на практике. Я связал 2 таблицы, но не могу понять как интерпретировать id в слово, которое относится к нему. Я чуть ниже прикреплю фото и код.

База:
imgur база

Код:
<?php $country_name = get_country_by($seria["countries_id"]); ?> (на странице)

(в отдельном файле, где прописано подключение к БД)
function get_country_by($id) {
global $db;
$countryN= $db->prepare('SELECT country_name FROM country WHERE id = :id');
$countryN->execute([':id' => $countries_id]);
foreach ($countryN as $country_name) {
return $country_name;
}
}

По результату выводится число 1, но не название страны.

Не кидайте палками, если выше написан бред, лучше киньте ссылочку где можно почитать об этом. Спасибо!
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@alexalexes
После этой строчки:
$countryN->execute([':id' => $countries_id]);
... вам нужно применить один из методов:
$rows = $countryN->fetchAll();
var_dump($rows);

или
$row = $countryN->fetch();
var_dump($row);

Почитать тут и тут.
Вкратце, работа с базой идет по таким этапам:
1) Подключение к БД (хост, логин пароль и тд)
1.1) Обработка ошибок подключения
2) Передача параметров кодировки, форматов даты/время, локали и тд
3) Подготовка запроса (prepare функция)
3.1) Обработка синтаксических ошибок текста запроса.
4) Подготовка входных и выходных параметров запроса (bind функция)
4.1) Обработка ошибок параметров (результат возврата значения bind функции).
5) Выполнение (execute функция).
5.1) Обработка ошибок выполнения (обычно, смотрят состояние возврата значения execute функции).
6) Выборка результата (фетчинг, используем fetch-функции).
*) https://www.php.net/manual/ru/pdo.errorinfo.php получение состояния ошибки на любом этапе.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@nozzy
Symfony, Laravel, SQL, Python, Telegram
foreach ($countryN as $country) {
   echo $country['country_name'];
}
Ответ написан
@Alex_2
Запрос должен быть в обе таблицы и содержать связующее условие. Тогда из его результатов можно получить ваше название страны а не id.
Select from tab1, tab2 where tab1.id=tab2.fieldname типа того, в суть ваших таблиц нн вникал.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы