Comparaison de deux listes

cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011 - 16 janv. 2010 à 15:43
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011 - 19 janv. 2010 à 15:57
kikou tout le monde heureuse de vous revoir .....

alors, je suis aujourd'hui confrontée à un petit pb.
dans une bdd j'ai 2 champs.
1er champs avec une liste de mot.
2eme champs avec une liste de mot.

je voudrais creer un script qui me permette de faire une comparaison des deux listes et en faire ressortir sous forme d'une liste les mots qui sont à la fois dans le 1er et le 2eme champs.

quelqu'un pourrait m'aider ?

14 réponses

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
16 janv. 2010 à 17:39
Voici la méthode, je te laisse le soin de développer tout ça.
1. Requete sur les 2 champs en question et tu mets chaque champs dans une variable.
2. Tu transformes chacune de tes variables en tableau via Tapez le texte de l'url ici.
3. Tu consultes le lien Tapez le texte de l'url ici. pour trouver ton bonheur et obtenir ce que tu décris ci-dessus..
Ca te convient ??
S.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
16 janv. 2010 à 17:41
Oups.. Souci sur mes liens mais ils devraient fonctionner.
S.
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
17 janv. 2010 à 14:43
merci mais j'y comprends rien
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
17 janv. 2010 à 15:16
Tu as déja programmé en PHP ? C'est assez basique pourtant. Que ne comprends-tu pas ?
S.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
17 janv. 2010 à 18:35
oui j'ai des pleine page de php donc je comprends un minimum, mais la j'avoue que je suis perdu

les exemples que je vois ne sont pas clair pour moi
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
18 janv. 2010 à 08:15
voila ou j'en suis, le premier paragraphe selectionne tous les mots du champ 1, le deuxieme tous les mots du champ 2.
$list1 est le resultat (tous les mots champ 1)
$list2 est le resultat (tous les mots champ 2)

c'est pour la suite que je bloque, comparer les deux liste et en sortir un $result qui correspond aux mots identiques des lis1 et list2

$query_Recordset1 = "SELECT mot FROM ep_mot1";
$Recordset1 = mysql_query($query_Recordset1, $mysql_link) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$list1= $row_Recordset1['mot'];

$query_Recordset2 = "SELECT mot FROM ep_mot2";
$Recordset2 = mysql_query($query_Recordset2, $mysql_link) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
$list2= $row_Recordset2['mot'];
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
18 janv. 2010 à 09:16
j'ai fais une tite modif mais je suis pas plus avancée

$query_Recordset1 = "SELECT * FROM ep_mot1 WHERE mot";
$Recordset1 = mysql_query($query_Recordset1, $mysql_link) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$list1= $row_Recordset1['mot'];

$query_Recordset2 = "SELECT * FROM ep_mot2 WHERE mot";
$Recordset2 = mysql_query($query_Recordset2, $mysql_link) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
$list2= $row_Recordset2['mot'];
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
18 janv. 2010 à 14:37
nah non, j'y arrives po
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
19 janv. 2010 à 09:13
personne pour m'aider ?
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
19 janv. 2010 à 10:48
Hello,

Voici un exemple avec ce que t'as indiqué syndrael :
<?php
// J'ai deux liste de mots séparés pas des virgules
$mesmots1 = "banane,pomme,poire,orange";
$mesmots2 = "ananas,banane,peche,poire";
// Je met les mots dans un tableau en indiquant qu'il faut prendre en compte la virgule pour créer les lignes
$maliste1 = explode(',', $mesmots1);
$maliste2 = explode(',', $mesmots2);
/* Ca me donne ces deux tableaux :
maliste1 Array
(
    [0] => banane
    [1] => pomme
    [2] => poire
    [3] => orange
)
maliste2 Array
(
    [0] => ananas
    [1] => banane
    [2] => peche
    [3] => poire
)
*/
$malistefin = array_intersect($maliste1, $maliste2);
/* Ca me donne ce tableau :
malistefin Array
(
    [0] => banane
    [1] => poire
)
*/
$mesmotsfin =  implode(',', $malistefin);
echo $mesmotsfin;
// banane,poire
?>



_________________________________
Min iPomme
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
19 janv. 2010 à 11:26
merci de votre réponse c'est gentil
moi dans mon cas, les mots sont déja dans un tableau donc j'ai fais ceci mais sa n'affiche rien, ou ai je fais une erreur ?
$list1 est le resultat (tous les mots champ 1 de la table A )
$list2 est le resultat (tous les mots champ 1 de la table B)

Petite precision (comment afficher le resultat de $list1 ou $list2, quand je fais un echo j'ai rien qui apparait pourtant pour la selection je fais :
$query_Recordset1 = "SELECT mot FROM ep_mot1";
$Recordset1 = mysql_query($query_Recordset1, $mysql_link) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$list1= $row_Recordset1['mot'];

sa devrait fonctionner pourtant ? )

// les mots dans les tableau qu'il faut prendre
$maliste1 = $list1;
$maliste2 = $list2;
/* Ca me donne ces deux tableaux :
maliste1 Array
(
    [0] => banane
    [1] => pomme
    [2] => poire
    [3] => orange
)
maliste2 Array
(
    [0] => ananas
    [1] => banane
    [2] => peche
    [3] => poire
)
*/
$malistefin = array_intersect($maliste1, $maliste2);
/* Ca me donne ce tableau :
malistefin Array
(
    [0] => banane
    [1] => poire
)
*/
$mesmotsfin =  implode($malistefin);
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
19 janv. 2010 à 14:27
UNE solution a me proposer ?
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
19 janv. 2010 à 15:38
Nan nan fais un écho de ta liste1 tu verras que c'est pas un tableau php...


_________________________________
Min iPomme
0
cs_eva4 Messages postés 278 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 24 juin 2011
19 janv. 2010 à 15:57
quand je fais un echo sa me sort unique un mot (generalement le premier) pourtant en faisant
$query_Recordset1 = "SELECT * FROM ep_mot WHERE mot ='$mot'";
$Recordset1 = mysql_query($query_Recordset1, $mysql_link) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$list1= $row_Recordset1['mot'];


mon echo devrait me sortir la liste entiere des mots ? non ?
0
Rejoignez-nous