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. #21
    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 t'ai dit de faire un tableau comme ça $tableau[$salle][$date] = valeur

  2. #22
    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
    bonjour,

    je pense avoir un dernier soucis avec une variable que je ne sais pas comment la déclarer
    Notice: Undefined variable: date in C
    cela se produit sur la 2eme et 4me ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $Salle = ( !empty($_POST['Salle'])) ? $_POST['Salle'] : '';
    $sth=$pdo->query( "SELECT * FROM planning WHERE ID ='".$Salle."' AND JOUR_DEBUT= '".$date."'"  ) ;
    $donnees =  $sth->fetch();
    $tableau[$Salle][$date]=$donnees;

  3. #23
    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
    Ta première ligne n'a pas de sens : s'il n'y a pas de Salle fournie, il n'y a pas de requête.

    Concernant la requête elle doit recuperer toutes les salles désirées pour toute la période de dates.

  4. #24
    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
    j'ai essayé de faire cela ,mais j'ai une valeur qui s'ajoute sur la derniere salle,qui le correspond pas a l'enregistrement,pour le moment j'ai essayé de gerer que la salle .
    la date je vois après.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $Salle=array(1=>'Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaire');
     
    for($i=1;
     $i<7;
     $i++
    ){
    $sth=$pdo->query( "SELECT * FROM planning WHERE ID ='".$Salle[$i]."'"  ) ;
    }
    $donnees =  $sth->fetch();
    $tableau[$Salle[$i]]['2015-07-20']="test";

  5. #25
    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
    Il faut faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth=$pdo->query("SELECT * FROM planning WHERE ID IN ('Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaire')");
    Au passage il serait bien d'avoir une table de reference pour les salles plutôt que d'avoir "salle 1" comme id.
    D'ailleurs je ne comprends pas bien comment 'Salle 1' par exemple peut etre un ID de la table Planning.

  6. #26
    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 quand j'ai fait ma table avec l'ID en type INT il fallait que je sois absolument en auto increment sinon cela me generer une erreur.
    pour cela que j'ai mis mes salles en ID .
    d'autre part en faisant ce que tu me suggères je me retrouve a nouveau avec le message d'erreur par rapport a la variable
    Notice: Undefined variable: Salle in C

  7. #27
    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 suppose que "ID" actuellement n'est pas une clef primaire car les salles ne sont pas uniques, donc dans ta table Planning il n'y a pas de clef ?

  8. #28
    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
    si pourtant j'ai bien ma clé primaire

  9. #29
    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
    De quelle colonne s'agit-il ?

  10. #30
    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, j'ai refait mon tableau j'ai mon ID qui est en clé primaire ainsi qu'en auto incrément sachant que j'ai rajouté une colonne (SALLE) ou mes 7 lignes correspondent aux salles.
    j'ai n'ai plus de message ILLEGAL OFFSET TYPE mais
    Notice: Undefined variable: Salle in C
    Notice: Undefined variable: date in C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sth=$pdo->query("SELECT PRODUITS FROM planning WHERE SALLE IN ('Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaire')");
    $donnees =  $sth->fetch();
    $tableau[$Salle][$date]=$donnees;

  11. #31
    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
    $salle et $date ne sont pas définies dans ton code.

  12. #32
    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
    j'ai défini la variable $Salle mais pour $date je ne sais pas trop car je doit prendre en compte le jour debut ainsi que le jour fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $Salle=isset($_POST['SALLE'])? $_POST['SALLE'] :'';
    $date=isset($_POST['JOUR_DEBUT '])? $_POST['JOUR_DEBUT '] :'';
     
     
    $sth=$pdo->query("SELECT PRODUITS FROM planning WHERE SALLE IN ('Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaire') AND JOUR_DEBUT=??????AND JOUR_FIN=??????");
    $donnees =  $sth->fetch();
    $tableau[$Salle][$date]=$donnees;

  13. #33
    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
    toujours la même erreur que je t'ai déjà signalé : a quoi servent les deux premières lignes ?

  14. #34
    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 comprends bien mais c'est la seule façon que j'ai pu trouver pour définir mes variables $Salle et $date,alors effectivement j'ai rien qui s'affiche pour le moment

  15. #35
    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 pense que tu aurais pu au moins écrire correctement la requête toi même ; tu n'as même pas mis les colonnes utiles dans le SELECT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sth=$pdo->prepare("SELECT SALLE, PRODUITS, DATE_DEBUT, DATE_FIN FROM planning WHERE SALLE IN ('Salle 1','Salle 2','Salle 3','Salle 4','Salle 5','Cours','Vestiaire') AND JOUR_DEBUT <= :datefin  AND JOUR_FIN >= :datedebut");
    $sth->execute(array(':datefin'=>$_POST['JOUR_FIN'], ':datedebut'=>$_POST['JOUR_DEBUT']));
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
       $objDatedebut = date_create($row['JOUR_DEBUT']);
       $objDatefin = date_create($row['JOUR_FIN']);
       for( $date = clone $objDatedebut; $date <= $objDatefin; $date->modify('+1 day')) {
            $tableau[$row['SALLE']][$date->format('Y-m-d')][] = $row['PRODUITS'];
       }
    }

  16. #36
    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 te remercie pour le code,en fait je n'ai pas trouvé utile de detailler dans le select les entrée car il n'y a que l'ID qui ne rentré pas en compte, tout les autres champs oui.
    d'autre part il y a une erreur de synthaxe dans la requete

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':datefin AND JOUR_FIN >= :datedebut' at line 1'

  17. #37
    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
    car il n'y a que l'ID qui ne rentré pas en compte, tout les autres champs oui.
    je n'ai rien compris.

    Tu as laissé query() au lieu de prepare() je pense concernant l'erreur.

  18. #38
    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 m'en suis rendu compte après, mais par contre je me retrouve avec ces message d'erreur concernant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth->execute(array(':datefin'=>$_POST['JOUR_FIN'], ':datedebut'=>$_POST['JOUR_DEBUT ']));
    Notice: Undefined index: JOUR_FIN
    Notice: Undefined index: JOUR_DEBUT
    sacahant que j'ai modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth=$pdo->prepare("SELECT SALLE, PRODUITS, JOUR_DEBUT, JOUR_FIN  FROM planning......

  19. #39
    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
    JOUR_DEBUT (attention il y a un espace qui se ballade après) et JOUR_FIN doivent venir de ton formulaire non ? Tu as bien validé le formulaire pour arriver sur ce code ?

  20. #40
    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
    oui tout vient de ma table et du formulaire,et j'avais corrigé l'espace.
    dans le formulaire de saisie le jour je l'ai renommé en JOUR_DEBUT, et jourf en JOUR_FIN
    j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['JOUR_DEBUT']) && isset($_POST['JOUR_FIN']) ){

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 8 PremièrePremière 123456 ... DernièreDernière

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