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 :

[Tableaux] Problème de réalisation


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut [Tableaux] Problème de réalisation
    Bonjour.

    Dans mon application je réalise une requête quelconque que l'on nommera X.

    Faut savoir que cette requête se trouve dans un while d'une autre requete.

    Je stoque donc à chaque requete le nombre de résultat dans un tableau.
    $tableau_res[$m]=$res; $m++;
    Les résultats de la première requête sont stockés eux aussi dans un tableau.

    Jusque la tout va bien.

    Le problème c'est pour gérer l'affichage.
    En effet j'aimerai que selon le nombre de résultat stocké dans $tableau_res on affiche sur une première ligne le nombre de résultat stoqué dans l'autre tableau.

    imaginons que tableau_res stoque [1,3,5]
    J'aimerai aller chercher dans l'autre tableau le premier resultat et l'afficher sur une ligne, ensuite les 3 résultats suivant et les affichers sur une autre ligne, etc etc.

    Je sais pas pourquoi je n'y arrive pas!!!!

    Merci bien

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Par défaut
    Est-ce que tu pourrais donner un bout de ton code pour qu'on puisse vraiment voir.
    Merci.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    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
    $query="SELECT *, SUM(nb_heures) AS nb_heures  FROM `pointage`  WHERE `id_utilisateur` LIKE '$bilan_personne' AND `nom_projet` = '$code_projet' AND (`date` between '$bilan_du' and '$bilan_au') AND `nature` LIKE '$bilan_nature' GROUP BY 'nature'";
     "<br>";
     
     $result=mysql_query($query) or die(mysql_error());
     
     while($val=mysql_fetch_assoc($result))
      {
       $tableau_nature[$i]=$nature; $i++;  
       $tableau_nb_heures_ligne[$j]=$nb_heures_ligne; $j++;
     
       $query_bouclage="SELECT * , SUM(nb_heures) AS nb_heures FROM `pointage` WHERE `id_utilisateur` LIKE '$bilan_personne' AND (`date` between '2007-01-01' and '2007-03-20') AND `nom_projet` = '$nom_projet' AND `nature` = '$nature' GROUP BY 'id_utilisateur'";
     
     
     $result_bouclage=mysql_query($query_bouclage) or die(mysql_error());
     //permet de savoir combien il y a d'utilisateurs par nature
     $res = mysql_num_rows($result_bouclage); 
     
     $tableau_res[$m]=$res; $m++;
     //on retourne un tableau qui contient la ligne lue
     while($val_bouclage=mysql_fetch_assoc($result_bouclage))
      {   
        $tableau_val_bouclage_util[$k]=$val_bouclage['id_utilisateur']; $k++;
        $tableau_val_bouclage_nbheures[$l]=$val_bouclage['nb_heures']; $l++;
       }
       }
    Voila ensuite en dehors de toutes les boucles (j'ai peux être mal fermé une accolade) j'aimerais afficher les résultats comme expliqué.

    Merci grandement

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Par défaut
    Vite fait et à tester (pas trop le temps) :

    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
     
    //Somme des valeurs du tableau pour savoir ou s'arreter
    $i = 0;
    //Indice en cours
    $ind = 0;
     
    foreach($tableau_res as $keys=>$vals) {
    	$i = $i + $vals;
    	echo "<tr><td>";
    	for($j=$ind;$j<$i,$j++) {
    		echo $mon_tableau_a_afficher[$j];
    		$ind++;
    	}
    	echo "</td></tr>";
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Merci bien.

    Ce morceau était nickel.
    Mais maintenant je bloque sur autre chose !!!!

    En effet je possède deux tableaux.
    Un tableau des natures travaillées par projet et un tableau contenant le nombre de nature travaillées par projet.

    Par exemple $tableau_ress contient [3,2,1] (tableau contenant le nombre de nature travaillées par projet)

    $tableau_nature[nature5,nature2,nature4,nature2,nature2]

    Cela veux dire par exemple que pour un projet nommé X la personne a travaillés sur 3 natures qui sont nature5,nature2,nature4 et pour un projet Y la personne a travaillé sur 2 natures qui sont nature2,nature2

    Maintenant j'essaye d'afficher les utilisateurs par nature travaillés.

    J'ai repris ceci
    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
    <?php  //Somme des valeurs du tableau pour savoir ou s'arreter
    $i = 0;
    //Indice en cours
    $ind = 0;
     
    foreach($tableau_ress as $keys=>$vals) {
    	$i = $i + $vals;
    	for($j=$ind;$j<$i;$j++) {
     
    		?><tr class="detail1">
    		<td style="display:none;" class="<?php echo "$nom_projet$tableau_nature[$j]";?>" ><?php echo nom_utilisateur($tableau_val_bouclage_util[$j]) ; ?></td>
    		<td style="display:none;" class="<?php echo "$nom_projet$tableau_nature[$j]";?>" ><?php echo $tableau_val_bouclage_nbheures[$j] ; ?></td></tr>
    		<?php 
    		$ind++;
    	}
     
    } ?>
    La premiere valeur du tableau est 3.
    La boucle for va se dérouler 3 fois, mais il faudrait que le nom de la classe de mes TD reste trois la meme pour les 3 boucles, après pour l'affichage des variables c'est tout bon.

    J'espere que vous m'avez compris, ce qui n'est pas évident.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Par défaut
    Euh... Non, j'ai pas tout compris.
    Tu as pas une erreur là $nom_projet$tableau_nature[$j] ?
    $nom_projet, c'est quoi ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    $nom_projet c'est la variable contenant le nom du projet qui est récupéré par une requete dont je n'ai pas parlé car elle n'influe pas sur mon problème.
    Pour l'unicité des classes de mes TD j'ai du les appeler comme ceci "$nom_projet$nom_nature"

    Pas grave, merci de ta bonne volonté.
    C'est trop dur à expliquer déjà j'ai même du mal à me l'expliquer.

    Je ne sais pas comment m'organiser en fait.
    On va repartir de la BDD.

    Je possède une classe pointage contenant ceci
    id_pointage

    id_utilisateur | id_projet | date | jour | nb_heures | nature | nom_projet | ligne | commentaire | validite

    J'ai donc aussi une table nature et une table projet et une table utilisateurs.
    On peux passer pour les détails.

    J'aimerais tout simplement réaliser des bilans de profondeur trois en fait.
    Bilan classés par Projet nature Utilisateur ou Nature Projet utilisateur, avec le nombre d'heures etc etc.

    Et à vrai dire j'ai du mal à m'en sortir.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Oublions tout ce qui a été dis avant.

    Je crois je viens de trouver une solution.

    J'ai juste un petit bloquage.

    En effet, j'ai une requete dans laquelle je récupère les nom de mes projets.

    Apres ma requete je fais donc ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($val=mysql_fetch_assoc($result))
      { 
        $nom_projet=$val['nom_projet'];
    la première fois que ca va rentrer dans la boucle ca va récupérer par exemple PROJET1.

    Les deux fois suivantes, ca va aussi récupérer PROJET1.
    Comment mettre une condition pour que le $nom_projet ne s'écrive que quand le resultat suivant est différent du précédent?

    COrdialement

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    A priorio j'ai reussi en faisant comme cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $init = "";
    $first =$nom_projet;
    if($init != $first){
                           $init = $first;
                           echo $init;}
    Ca semble marcher

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Par défaut
    Si ça marche alors c'est parfait !!

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

Discussions similaires

  1. [Tableaux] Problème avec array_multisort
    Par ecocentric dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2005, 14h56
  2. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42
  3. [Tableaux] problème de concaténation
    Par ludovik dans le forum Langage
    Réponses: 3
    Dernier message: 13/09/2005, 13h24
  4. [Tableaux] problème avec while
    Par zimotep dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2005, 10h30
  5. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37

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