IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comparer deux valeurs de tableaux


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut Comparer deux valeurs de tableaux
    Bonjour, je souhaites comparer des valeurs dans deux tableaux pour vois si elles sont identiques.
    Mais ça ne fonctionne pas. J'ai "oui" qui apparais alors que je devrais avoir des non aussi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    $sql11 = "select * from c";
     
    $sql12 = "select * from m";
     
     
    $resultat0 = mysql_query($sql11) or trigger_error(mysql_error()." in ".$sql11);
     
    $resultat1 = mysql_query($sql11) or trigger_error(mysql_error()." in ".$sql12);
     
     
     
    while($c=mysql_fetch_assoc($resultat0))
     
    		{
     
    			$c[$c['prenom']].$c[$c['nom']]== $c['resultat'];
     
    		}
     
    			//mysql_free_result($resultat0);
     
     
     
    while($m=mysql_fetch_assoc($resultat1))
     
    		{
     
     
    			$m[$m['prenom']].$m[$m['nom']] == $m['resultat'];
     
     
    		}
     
    			//mysql_free_result($resultat1);
     
     
     
    echo "<option value=\"\">";
    //echo $row0['id_candidat'];
     
    if(($c['resultat']) == ($m['resultat']))
     
    	//echo "";
    	echo "oui" ;
     
     
    else
     
    	//echo "";
    	echo "non";
     
    echo "</option>";

  2. #2
    Membre expérimenté Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2004
    Messages
    1 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mai 2004
    Messages : 1 120
    Points : 1 640
    Points
    1 640
    Par défaut
    Bonjour

    Gaffe à ta mise en page... Il faut scroller "à mort" vers la droite; j'espère que ton code n'est pas comme ça ;-)

    Peux-tu m'expliquer cette ligne ? Elle est des plus étranges...
    $m[$m['prenom']].$m[$m['nom']] == $m['resultat'];
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  3. #3
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 269
    Points : 3 893
    Points
    3 893
    Billets dans le blog
    1
    Par défaut
    Quand j'ai vu cette ligne, j'ai pensé qu'il y avait sûrement une erreur car ce code ne fait pas grand chose...

    Et les fonctions mysql_xxx sont obsolètes.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut Comparer deux valeurs de tableaux
    Mon code à une indentation mais en faisant un copier / coller, c'est parti dans tous les sens....désolé

    Concernant la ligne, je veux recuperer le prénom et le nom des personnes pour rajouter le résultat dans un tableau.

    Pour les fonctions mysql, je dois les remplacer par quoi?

  5. #5
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 269
    Points : 3 893
    Points
    3 893
    Billets dans le blog
    1
    Par défaut
    Maintenant, pour gérer des bdd, y a PDO : https://www.developpez.net/forums/bl...pdo-soupe-lit/

    Peux-tu donner la structure des tables c et m, qu'on comprenne ton code ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut Comparer deux valeurs de tableaux
    Alors c = candidat (id_candidat, prenom_candidat, nom_candidat) et m=membre(id_membre, prenom, nom).

  7. #7
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 269
    Points : 3 893
    Points
    3 893
    Billets dans le blog
    1
    Par défaut
    donc $c['nom'] (notamment) n'existe pas.

    Et que vient faire $c['resultat] ?

    et aussi echo "<option value=\"\">"; ?

    et ça $c[$c['nom']], c'est quoi ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  8. #8
    Membre expérimenté Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2004
    Messages
    1 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mai 2004
    Messages : 1 120
    Points : 1 640
    Points
    1 640
    Par défaut
    Bonjour

    Si j'ai posé ma question c'était pour te faire prendre conscience que ton code était incorrect. Tu ne dis pas que ton code ne fonctionne pas aussi, je présume qu'il fonctionne (=tourne sans donner d'erreur) mais, à moins que PHP ait fortement régréssé (l'opposé d'évoluer ici); je ne comprends pas comment ton code peut tourner.

    Voici ce que tu écris (une fois pour $m, une fois pour $c).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($m=mysql_fetch_assoc($resultat1)) {
        $m[$m['prenom']]   .   $m[$m['nom']] == $m['resultat'];
    }
    J'ai juste ajouté des espaces devant et après le point pour bien montrer un des deux problèmes : tu as donc $m[$m['prenom']] que tu concatènes avec un . et $m[$m['nom']]. Ok, donc tu cherches à faire "Jean SansPeur" mais vois bien que tu as deux "variables" (des indices d'un tableau). J'imagine que ton but est de stocker cela, le nom complet.

    $['nom_complet'] = $m[$m['prenom']] . $m[$m['nom']];Donc, si je reprends ton code, tu as deux indices et je vois le double égal; ok, donc non, je me suis planté, tu ne cherches pas à créer un nom_complet mais à vérifier si le nom complet est la même chose que ce qui se trouve dans $m['resultat']. Ok, donc, là où je lisais une assignation tu fais une comparaison. Ok... Au temps pour moi.

    Mais ? Imaginons que ce soit égal et que le test que tu fais retournes true. Tu en fais quoi de ce true ? Ben rien, avec ton while, tu passes déjà au prochain enregistrement.
    N'es-tu pas supposé p.ex. stocker ce true et/ou faire ton traitement ?

    Ce qui m'étonne, sur le plan de la syntaxe, c'est que ton code ne semble pas retourner d'erreur (tu n'en parles pas). Ta boucle ne fait strictement rien du tout. C'est comme si je regarde toutes les voitures qui passent à un moment donné dans ma rue et que je me dis "Ah, ces deux voitures-là se ressemblent / ne se ressemblent pas" et hop, je passe aux deux autres. Cela ne sert à rien.
    Christophe (cavo789)
    Mes scripts Open Source : https://github.com/cavo789

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut Comparer deux valeurs de tableaux
    Bonjour et merci pour toutes os remarques.

    Oui je cherche à comparer Candidat (prenom.nom) et Membre (prenom.nom). Si les deux valeurs sont identiques, j'ai mis un echo "Correspondance entre deux noms".

    Merci pour votre aide.

  10. #10
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 269
    Points : 3 893
    Points
    3 893
    Billets dans le blog
    1
    Par défaut
    Essaye ce code STP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    $array_candidat=[];
    $array_membre=[];
    $sql11 = "select * from c";
     
    $sql12 = "select * from m";
     
     
    $resultat0 = mysql_query($sql11) or trigger_error(mysql_error()." in ".$sql11);
     
    $resultat1 = mysql_query($sql11) or trigger_error(mysql_error()." in ".$sql12);
     
    while($c=mysql_fetch_assoc($resultat0))
    {
    $array_candidat[]=$c['prenom_candidat'].$c['nom_candidat'];
    }
     
    while($m=mysql_fetch_assoc($resultat1))
    {
    $array_membre[]=$m['prenom'].$m['nom'];
    }
     
    $identique=true;
    $i=0;
     
    foreach($array_candidat as $one_candidat)
    {
       if ($one_candidat != $array_membre[$i++]) $identique=false;
    }
    echo ($identique) : "oui" ? "non";
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut Comparer deux valeurs de tableaux
    J'ai essayé le code et j'ai un
    Parse error: syntax error, unexpected.

  12. #12
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 269
    Points : 3 893
    Points
    3 893
    Billets dans le blog
    1
    Par défaut
    Peux-tu donner ton code entier et un copier-coller du message d'erreur (et que le numéro de ligne indiqué corresponde bien) ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  13. #13
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut
    J'ai ce message d'erreur
    Parse error: syntax error, unexpected '[' in /home/on line 692 sur la premiere ligne du code : $array_candidat=[];

  14. #14
    Membre expert

    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    octobre 2006
    Messages
    8 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 8 269
    Points : 3 893
    Points
    3 893
    Billets dans le blog
    1
    Par défaut
    Je ne peux regarder que maintenant.
    Il est plus simple pour moi de tester ton code mais étant en PHP7, les fonctions mysql_xxx ont été retirées, donc il faut d'abord que je convertisse ton code en PDO. De toute façon, j'aurai besoin de la structure de ta table. Peux-tu me la donner ?

    Pourquoi as-tu mis la discussion en ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  15. #15
    Membre habitué
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 960
    Points : 174
    Points
    174
    Par défaut Comparer deux valeurs de tableaux
    Bonjour et merci pour votre aide. Je viens de trouver la solution. En fait j'ai tous fais dans la requete sql pour simplifier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "select * from candida as C, salarie as S where C.id_candidat='".$d['id_candidat']."' AND C.nom = S.nom AND C.prenom = S.prenom "l
    J'ai mis le code si cela peut aider. Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Comparer deux valeurs suivi d'actions
    Par Popperwin dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/05/2009, 11h23
  2. [XL-2007] comparer deux valeurs issues de userform différentes
    Par labo33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2009, 23h13
  3. Comparer deux valeurs avec javascript (td caché et zone de texte)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2009, 13h57
  4. [MySQL] Comparer deux valeurs depuis deux tables
    Par jbidou88 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/03/2008, 15h20
  5. Comparer deux valeurs d'un champ
    Par goulhasch dans le forum Macro
    Réponses: 7
    Dernier message: 13/09/2007, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo