#php #arrays #loops #pdo
#php #массивы #циклы #pdo
Вопрос:
мой вопрос: как сопоставить несколько массивов (два или даже больше) внутри цикла foreach (или while)
$cat = $bdd->query('SELECT cat_name FROM categories');
$categories_list = $cat->fetchAll(PDO::FETCH_COLUMN);
$cat_id = $bdd->query('SELECT cat_id FROM categories');
$categories_id = $cat_id->fetchAll(PDO::FETCH_COLUMN);
$arrcatid = array($categories_list,$categories_id);
echo '<form method="post" action="accès/create_topic_post.php" autocomplete="off">';
echo '<label for="sujet">Sujet :';
echo '<input type="text" name="sujet" id="sujet" required autofocus>';
echo '</label>';
echo '<label for="cat">Catégories :';
echo '<select name="topic_name">';
foreach ($categories_list as $cat_name){
echo "<option value="$cat_name">$catname</option>";
}
$cat_id->closeCursor();
$cat->closeCursor();
echo '</select>';
echo '</label>';
echo '<input type="submit" value="Envoyer">';
echo '</form>';
var_dump($arrcatid);
Итак, цель состоит в том, чтобы сопоставить массив 0 с массивом 1 cat_name amp;amp; cat_id
Большое спасибо: D
Ответ №1:
Как насчет получения имени и идентификатора в sql-запросе?
$cat = $bdd->query('SELECT cat_name, cat_id FROM categories');
Комментарии:
1. Затем измените его на PDO::fetchAll.
2. Это уже fetchall,
$cat_id ->FetchAll(PDO::FETCH_COLUMN)
3. @RomainSickenberg почему бы вам не прочитать параметр, который вы используете? PDO::FETCH_COLUMN предназначен для получения самого первого поля. Если вам нужны другие поля, то вам нужен другой режим выборки. Если вы ничего не прочитаете в кодах, которые вы указали в stack overflow, то никакой ответ вам не поможет. Вы здесь, чтобы учиться, а не просить других людей выполнять вашу работу.
4. Извините, извините, я думал, что это говорит о
->FetchAll
Ответ №2:
Я использовал :
$cat = $bdd->query('SELECT cat_name,cat_id FROM categories');
$categories_list = $cat->fetchAll(PDO::FETCH_KEY_PAIR);
и для foreach :
foreach ($categories_list as $cat_id => $cat_name){
echo "<option value="$cat_name">$cat_id</option>";
Комментарии:
1. Этот вариант хорош, но я думаю, вам нужно поменять местами $cat_name и $ cat_id, показывая имена в поле выбора. в то время как идентификатор должен быть отправлен на сервер
2. Готово 🙂 Спасибо за экспертизу: D