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 :

Remplir un tableau en fonction des dates selectionnees [MySQL]


Sujet :

PHP & Base de données

  1. #81
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est toi qui écrit les dates à la main dans le code que tu me montres donc je ne vois pas pourquoi tu ne peux pas les ecrire au format AAAA-MM-DD.

  2. #82
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    en uinversant cela ne change rien,pas d'affichage

    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
    $sth->execute(array(':j_debut'=>'2015-07-20',':j_fin'=>'2015-07-20'));
     
    while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) {
      $objDatedebut = date_create('2015-07-20');
      $objDatefin = date_create('2015-07-20');
       for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
    	   $tableau[$donnees['SALLE']][$date->format('Y-m-d')][] = $donnees['PRODUITS'];
         var_dump($tableau);
       }
     
    }
     
    ?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="Refresh" content="10" >
        <title>Gestion des Salles</title>
    </head>
    <body>
    <form  method="post" action="">
    <table border="1" cellspacing="1" cellpadding="30">
    <?php
     
    $objDatedebut = date_create('2015-07-20');
    $objDatefin = date_create('2015-07-26');
    $objDatedebut = date_create();
    if ($objDatedebut->format('N') != 1) {
        $objDatedebut->modify('last monday');

  3. #83
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as plus le tableau du planning ?

  4. #84
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    voici le code:

    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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="Refresh" content="10" >
        <title>Gestion des Salles</title>
     
    </head>
    <body>
    <table border="1" cellspacing="1" cellpadding="30">
    <?php
     
    $objDatedebut = date_create('2015-07-20');
    $objDatefin = date_create('2015-07-26');
    $objDatedebut = date_create();
    if ($objDatedebut->format('N') != 1) {
        $objDatedebut->modify('last monday');
    }
     
     
     
    $tblSalles = array(
    	0 => 'Salles',
    	1 => 'Salle 1',
    	2 => 'Salle 2',
    	3 => 'Salle 3',
    	4 => 'Salle 4',
    	5 => 'Salle 5',
    	6 => 'Cours',
    	7 => 'Vestiaires'
    );
     
    foreach ($tblSalles as $key=>$Salle) {
     
    	echo '<tr>
    				<td>' . $Salle . '</td>';
    	for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
     
    		if ($key == 0) {
    			$case = $date->format('y/m/d');
    		}
    		else {
     
        $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : '';
     
    }
    		echo '<td>' . $case .'</td>';
    	}
    	echo '</tr>';
    }
     
    ?>
     
    </table>
    </body>
    </html>

  5. #85
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je voulais dire : tu n'as plus rien du tout en affichage ?

  6. #86
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    je n'ai rien qui s'affiche,j'ai peut être une indication,

    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
    foreach ($tblSalles as $key=>$Salle) {
     
    	echo '<tr>
    				<td>' . $Salle . '</td>';
    	for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
     
    		if ($key == 0) {
    			$case = $date->format('Y/m/d');
    		}
    		else {
     
        $case = isset($tableau[$Salle][$date->format('Y-m-d')]) ? $tableau[$Salle][$date->format('Y-m-d')] : '';
    var_dump( $tableau); 
    var_dump( $case); 
    }
    		echo '<td>' . $case .'</td>';
    ici le var_dump( $tableau); affiche bien les valeurs .
    par contre var_dump( $case); m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    string '' (length=0)
     
    string '' (length=0)
     
    string '' (length=0)
     
    string '' (length=0)
     
    string '' (length=0)
     
    string '' (length=0)
     
    string '' (length=0)
    .....

  7. #87
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu retires la premiere partie concernant la base de données tu retrouves le planning ou non ?

  8. #88
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    juste pour faire un point avant modif de ce que tu me demandes visuellement j'ai bien mon tableau avec mes salles et les dates sur 7 jours.mais je n'ai aucun affichage a l'interieur correspondant au salles et dates.d'ou le post precedent pour te montrer que $case est vide donc il affiche rien.

  9. #89
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Exprime bien ce que tu obtiens au moins, "pas d'affichage" ca n'est pas vraiment pareil que "les cases ne se remplissent pas".

    Il faut une correspondance avec le libellé dans le base de donnée ; tu peux utiliser la clef du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $tblSalles = array(
    	0 => 'Salles',
    	'Salle_1' => 'Salle 1',
    	'Salle_2' => 'Salle 2',
    	'Salle_3' => 'Salle 3',
    	'Salle_4' => 'Salle 4',
    	'Salle_5' => 'Salle 5',
    	'Cours' => 'Cours',
    	'Vestiaires' => 'Vestiaires'
    );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $case = isset($tableau[$key][$date->format('Y-m-d')]) ? $tableau[$key][$date->format('Y-m-d')] : '';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau[$donnees['SALLE']][$date->format('Y-m-d')] = $donnees['PRODUITS'];
    Mais bon comme je te l'ai suggéré tout au début, une table de reference des salles serait la bonne solution.

  10. #90
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    bon, comme l'affichage est vide malgré la modification apportée, j'ai crée une table s'appelant SALLES avec 2 champs (id, salles)mais comment inseres tu la 2 eme table dans la requête sachant qu'il faut en condition les dates jour début et jour fin qui sont sur la première table?

  11. #91
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu pourrais me faire un export de ta table de donnée, ça sera plus facile.

  12. #92
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    voici les tables salles et planning
    Fichiers attachés Fichiers attachés

  13. #93
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    On en revient au tout début : ou est la salle dans la table planning ?

    Le code fonctionne bien sous reserve evidemment d'avoir une colonne SALLE
    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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
        <meta http-equiv="Refresh" content="10" >
        <title>Gestion des Salles</title>
     
    </head>
    <body>
    <table border="1" cellspacing="1" cellpadding="30">
    <?php
     
    $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN FROM planning WHERE SALLE IN ('Salle_1','Salle_2','Salle_3','Salle_4','Salle_5','Cours','Vestiaires') AND JOUR_DEBUT <=:j_fin  AND JOUR_FIN >=:j_debut");
    $sth->execute(array(':j_debut'=>'2015-07-20',':j_fin'=>'2015-07-20'));
     
    while ($donnees = $sth->fetch(PDO::FETCH_ASSOC)) {
       $objDatedebut = date_create($donnees['JOUR_DEBUT']);
       $objDatefin = date_create($donnees['JOUR_FIN']);
       for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
            $tableau[$donnees['SALLE']][$date->format('Y-m-d')] = $donnees['PRODUITS'];
     
       }
    } 
     
    $objDatedebut = date_create('2015-07-20');
    $objDatefin = date_create('2015-07-26');
    $objDatedebut = date_create();
    if ($objDatedebut->format('N') != 1) {
        $objDatedebut->modify('last monday');
    }
     
    $tblSalles = array(
    	'Salles'  => 'Salles',
    	'Salle_1' => 'Salle 1',
    	'Salle_2' => 'Salle 2',
    	'Salle_3' => 'Salle 3',
    	'Salle_4' => 'Salle 4',
    	'Salle_5' => 'Salle 5',
    	'Cours' => 'Cours',
    	'Vestiaires' => 'Vestiaires'
    );
    var_dump($tableau);
    foreach ($tblSalles as $key=>$Salle) {
     
    	echo '<tr>
    				<td>' . $Salle . '</td>';
    	for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
    		if ($key === 'Salles') {
    			$case = $date->format('d/m/Y');
    		}
    		else {
    			$case = isset($tableau[$key][$date->format('Y-m-d')]) ? $tableau[$key][$date->format('Y-m-d')] : '';
    		}
     
    		echo '<td>' . $case .'</td>';
    	}
    	echo '</tr>';
    }
     
    ?>
     
    </table>
    </body>
    </html>

  14. #94
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    En fait j'ai enlevé le champ salle de la table planning,donc je doit la remettre avec toutes les salles

  15. #95
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    après avoir rajouter la colonne salle dans ma table planning et avoir apporte les modifications que tu m'as suggère via ton code je me retrouve dans le même cas de figure, avec les cases vides. Effectivement le var_dump( $tableau); affiche bien les valeurs correspondantes du tableau. D'autre part j'ai modifié une ligne du code car je n'avais plus les dates de la semaine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($key === 'Salles') {
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($key == 'Salles') {
    via cette partie de code je joint une capture d'écran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ($key == 'Salles') {
    			$case = $date->format('d/m/Y');
    		}
    		else {
     
        $case = isset($tableau[$key][$date->format('Y-m-d')]) ? $tableau[$key][$date->format('Y-m-d')] : 'vide';
     
    }
    		echo '<td>' . $case .'</td>';
    Nom : tableau avec valeur vide.jpg
Affichages : 4300
Taille : 62,1 Ko

  16. #96
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    as-tu bien repris le code que je t'ai donné ?

    Le modification if ($key === 'Salles') { était dedans

  17. #97
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    quand je suis dans ce cas de figure voici l'affichage du tableau (mon tableau affiche vide partout ,je n'ai plus les dates
    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
    foreach ($tblSalles as $key=>$Salle) {
     
    	echo '<tr>
    				<td>' . $Salle . '</td>';
    	for ($date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
     
    		if ($key === 'Salles') {
    			$case = $date->format('d/m/Y');
    		}
    		else {
     
        $case = isset($tableau[$key][$date->format('Y-m-d')]) ? $tableau[$key][$date->format('Y-m-d')] : 'vide';
     
    }
    		echo '<td>' . $case .'</td>';
    	}
    	echo '</tr>';
    }
     
    ?>
    Nom : sans dates.jpg
Affichages : 1053
Taille : 52,2 Ko

  18. #98
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code que je t'ai donné fonctionne (en remettant la connexion à la base de donnée) avec la table planning que je t'ai donné en ajoutant seulement la colonne "SALLE" donc si ça ne fonctionne pas chez toi c'est que tu as mal recopié quelque chose.

  19. #99
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 108
    Points : 25
    Points
    25
    Par défaut
    c'est incomprehensible car j'ai fait un copier collé de ton code ,remis la colonne SALLE dans la table planning et pas le résultat que tu as obtenu,j'ai retrouvé mes dates de la semaine, mais mes case affiche vide
    as tu obtenu des valeurs venant de la table correspondant a la salle et a la date?

  20. #100
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Que donne le var_dump($tableau) ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/03/2015, 22h50
  2. changer l'ordre des dates dans table
    Par lordyan dans le forum Requêtes
    Réponses: 11
    Dernier message: 14/01/2005, 11h12
  3. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28
  4. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01
  5. Réponses: 3
    Dernier message: 19/03/2003, 15h19

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