[RESOLU] comparer 2 colonnes de 2 tables differentes dont une colonne contient des valeurs séparés par une virgule....

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] comparer 2 colonnes de 2 tables differentes dont une colonne contient des valeurs séparés par une virgule....

[RESOLU] comparer 2 colonnes de 2 tables differentes dont une colonne contient des valeurs séparés par une virgule....

par gagg » 14 oct. 2019, 13:21

j'ai enfin trouvé la solution, (non sans mal, pour moi....2 jours...) je sais pas si elle est correct mais elle fonctionnne !!

voici le code :
<?php
//------------ on va chercher le bon theme au question que l'on souhaite----------//
$req_gestion = $bdd->query("SELECT * FROM sondage_gestion WHERE code =".$_POST["code_gestion"]); 
$val_gestion = $req_gestion->fetch();	  
 //------------ on va sépare les valeurs ----------// 	
$code_question = explode(',', $val_gestion["code_question"]);
//------------ on va chercher les questions du theme concerné ----------//
$query_question = $bdd->query('SELECT * FROM sondage_question WHERE   code_theme='.$val_gestion['code_theme']);
//------------ on fait une boucle pour tout afficher----------//
while($val_question = $query_question->fetch()) 
{  
//------------   on affiche les questions   ---------//
   echo '<table width="787" border="1" align="center" cellpadding="0" cellspacing="1">';
   echo '<tr><td>'.$val_question['question'].'</td>';
   echo '<td align="center">';
//------------ on genere un chekbox pour chaque question----------//
   echo '<input name="code_question[]" type="checkbox" value="'.$val_question['code'].'" ';

//------------ on fait un tableau des valeurs dejà selectionné dans la table gestion----------//	
foreach( $code_question as $key => $value )
           {
           //------------ on va comparer la valeur (en fait l'ID) selectionné dans gestion -----//
           //-----avec les ID des questions en rapport avec le theme----------//
           //------------ si elle sont égales on affiche le checked----------//
           if ($value==$val_question['code'])  {  echo ' checked="checked"'; } 	 
           }		
   echo '/>';
   echo '</td></tr>';
} 	
   echo '</table>'; 	
?>

comparer 2 colonnes de 2 tables differentes dont une colonne contient des valeurs séparés par une virgule....

par gagg » 13 oct. 2019, 20:42

Bonjour,
j'ai quelques difficultés avec les boucles foreach...
je m'explique :
j'ai une table QUESTION avec 3 colonnes : CODE, QUESTION, CODE_THEME pour son theme.
j'ai une table GESTION avec une colonne CODE_THEME et CODE_QUESTION où j'insère x ID de question (CODE_QUESTION ) dedans par le biais d'une balise chekbox en HTML..
cette colonne CODE_QUESTION contient les id de mes questions séparés par une virgule .
j'aimerai (dans l'absolu lol) pouvoir afficher dans mon tableau HTML toutes les questions en fonction de CODE_THEME et que le boutons chekbox soit cheked si il est dans CODE_QUESTION de la table GESTION...
je n'arrive pas à comparer ma boucle avec le resultat de ma requete....
ou alors ma logique n'est pas bonne
Merci pour votre aide..

mon bout de code...
$array = array($val_gestion["code_theme"] => array($val_gestion["code_question"]));
foreach( $array as $key => $value )
{
echo 'le Thème N° '.$key . '<br />';

foreach( $value as $valeur )
echo 'mes valeurs de CODE_QUESTION =' . $valeur . '<br />';
echo '<br />';
}
$query3 = $bdd->query('SELECT * FROM sondage_question WHERE code_theme='.$val_gestion['code_theme']);
while($val3 = $query3->fetch()) {
echo 'l\'ID de la question du thème N° '.$key.' est '.$val3["code"].'<br>';
}
cela donne :
le Thème N° 2
mes valeurs de CODE_QUESTION =4,3,7

l'ID de la question du thème N° 2 est 3
l'ID de la question du thème N° 2 est 4
l'ID de la question du thème N° 2 est 7
l'ID de la question du thème N° 2 est 8
l'ID de la question du thème N° 2 est 9