2016-10-04 5 views
-1

M'Y 질문은 : foreach는 루프 (또는 동안)foreach 루프에서 여러 배열을 일치시키는 방법은 무엇입니까?

here is m'y <code>Var_dump</code>

$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 && cat_id

고마워요 : D

+1

사용 array_diff() – Shahrukh

답변

1

내가 사용

foreach ($categories_list as $cat_id => $cat_name){ 
echo "<option value=\"$cat_name\">$cat_id</option>"; 
+1

이 코드는 좋지만, $ cat_name과 $ cat_id를 바꿔서 선택한 필드에 이름을 표시해야한다고 생각합니다. ID는 서버 –

+0

에게 전송해야합니다. 완료되었습니다. 전문 지식에 감사드립니다. D –

3

어떻게 이름과 SQL 쿼리의 ID 모두를 얻기에 관하여?

$cat = $bdd->query('SELECT cat_name,cat_id FROM categories'); 
$categories_list = $cat->fetchAll(PDO::FETCH_KEY_PAIR); 

를하고 foreach는 경우 :

$cat = $bdd->query('SELECT cat_name, cat_id FROM categories'); 
 

 

+0

그런 다음 PDO :: fetchAll로 변경. – Henrik

+0

이미 fetchall,'$ cat_id -> FetchAll (PDO :: FETCH_COLUMN)' –

+2

@RomainSickenberg 왜 사용중인 매개 변수를 읽지 않습니까? PDO :: FETCH_COLUMN은 첫 번째 필드를 가져 오는 것입니다. 다른 필드가 필요하면 다른 가져 오기 모드가 필요합니다. 스택 오버플로에 대해 제공 한 코드에서 아무 것도 읽지 않으면 아무런 답변도 도움이되지 않습니다. 다른 사람들에게 직업을 요청하지 말고 배워야합니다. –

관련 문제