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

PHP & Base de données Discussion :

Comparaison des tableaux 2 dimensions en PHP


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut Comparaison des tableaux 2 dimensions en PHP
    bonjour tout le monde,
    j'ai un problème avec les tableaux en php,c'est pour cela je veux votre aide.

    bon j'ai 3 tables qui se pésentent comme suit:

    table type:id_type(1,2,3,..).
    table action:id_action(1,2,...).
    table profileid_type,id_action)((1,1),(1,2),(1,3),...(2,1),(2,2),....).

    ce que je veux c'est parcourir la table type(for ou while)
    parcourir la table action,et voir c'est( id_type,id_action) existe bien
    dans la table profile.

    est-ce que vous voyez que c'est possible,si quelqu'un a une idé merci de m'aider

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    A mon avis ton sujet va être déplacé

    Sinon tu cherche compliqué la ou on peut faire simple, pourquoi parcourir les deux?

    parcours seulement profile, avec deux where:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    where id_type='$var1' and id_action='$var2'

    Après tu teste, SI le nombre de lignes retournées est égal à 1, cette combinaisons existe, sinon elle n'existe pas...

  3. #3
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    Ouais si ça vient de la BDD fais plutot coté sql.

    Sinon si tu tiens à faire en php, utilise la fonction in_array()

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut
    merci beacoup pour vos reponses;

    en fait je veux faire ça en php4 de façon à pouvoir remplir un tableau de la manière suivante:


    ---------- type1-|--type2--|-- type3-|
    action1-----1----|---1-----|----0----|
    action2-----1----|---0-----|----0----|
    action3-----0----|---1-----|----0----|
    action4-----1----|---1-----|----1----|



    j'ai fait des essais,mais j'arrive à récupérer selemment la première colonne.
    voilà un des codes que j'ai fait.

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <?php
    $host = "localhost";
    $user = "root"; // votre login d'accès
    $pass = ""; // votre password d'accès
    mysql_connect($host,$user,$pass);
    mysql_select_db("test");
     
     
    $type=array();
    $matrice=array(array());
    $profile=array(array());
    $profile1=array();
    $profile2=array();
    $action=array();
     
    // parcourir la table profile
    $sql="select id_type,id_action from profile " or die('erreur:SQL</br>'.mysql_error());
    $req=mysql_query($sql) or die('erreur:SQL</br>'.mysql_error());
     
    //parcourir la table type
    $sql1="select * from type " or die('erreur:SQL</br>'.mysql_error());
    $req1=mysql_query($sql1) or die('erreur:SQL</br>'.mysql_error());
    $nb1=mysql_num_rows($req1);
     
    //parcourir la table action
    $sql2="select * from action " or die('erreur:SQL</br>'.mysql_error());
    $req2=mysql_query($sql2) or die('erreur:SQL</br>'.mysql_error());
    $nb2=mysql_num_rows($req2);
     
    $p=0;
    while($res=mysql_fetch_assoc($req)) {
    $profile1[$p]=$res['id_type'];
    $profile2[$p]=$res['id_action'];
    $p++;
     
    }
    $t=0;
    while($res1=mysql_fetch_assoc($req1)) {
    $type0[$t]=$res1['id_type'];
    $type1[$t]=$res1['libelle'];
    $t++;
    }
     
    $a=0;
    while($res2=mysql_fetch_assoc($req2)) {
    $action0[$a]=$res2['id_action'];
    $action1[$a]=$res2['libelle'];
    $a++;
    }
     
    echo"<table border=1>";
    //titre colonne
    	echo "<tr><td>&nbsp;</td>";
    	for($t=0;$t<$nb1;$t++){
    		echo "<td>".$type1[$t]."</td>";
    	}
     
     
     
       for($a=0;$a<$nb2;$a++){
           echo"<tr><td>".$action1[$a]."</td>";
     
                 for($t=0;$t<$nb1;$t++){
    			  echo"<td>";
     
            if( ($type0[$t]==$profile1[$t]) and ($action0[$a]==$profile1[a]) )
    		              {
    					   echo 1;
    					   }
     
    			else
    			           {
    					  echo 0;
    					  } 
    			  echo"</td>";
     
    		      }//fin while
    		      echo"</tr>";
    	}  //fin while 
     
    	echo"</table>";
     
    ?>
    j'espère que ça vous donne une idée,SVP n'ésitez pas à m'aider,car ça fait une semaine que je suis bloqué dans cette partie.

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut
    bonjour tout le monde.

    personne veut m'aider!

    en fait j'ai pu faire ça en imbriquant les trois boucles while,mais au lieu d'afficher une matrice de 0 ou 1 j'ai affiché une matrice de checkbox coché(dans le cas de 1) ou non (dans le cas de 0).

    ce que je veux maintenant c'est pouvoir editer ma table profile à partir de cette matrice des checkbox,c'est à dire si je décoche ou je coche d'autres checkbox et je valide j'aurais une nouvelle table profile avec les nouvelles données.
    pour cela,en validant le formulaire j'effectue 2 requettes.
    1-pour vider la table.(c'est faite).
    2-pour entrer les nouvelles valeurs.(c'est mon probleme).

    je peux faire ça pour un seul type.

    SVP participez,un grand merci d'avance

  6. #6
    Membre confirmé Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut
    Citation Envoyé par hessaid Voir le message
    merci beacoup pour vos reponses;

    en fait je veux faire ça en php4 de façon à pouvoir remplir un tableau de la manière suivante:
    Juste pour dire que tant qu'à apprendre, passe a PHP 5, le 4 est en fin de vie ...

    courrage

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/02/2007, 17h00
  2. Réponses: 4
    Dernier message: 05/12/2006, 20h13
  3. Pourquoi des tableaux à 8 dimensions ?
    Par fabiofabio dans le forum Windows
    Réponses: 9
    Dernier message: 29/04/2006, 19h23
  4. Réponses: 8
    Dernier message: 09/03/2006, 17h48
  5. [Tableaux] Gerer des tableaux à deux dimensions
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 15h20

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