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 :

Affichage du detail et somme du temps [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Affichage du detail et somme du temps
    Bonjour,

    Je vous soumet ici mon probleme parce que j'ai l'impression de tourner en rond et de ne pas avancer.

    J'ai:
    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
    <?php
     
    $week = $_POST["week"];
     
    include("include/connect.php");
     
    $req = $bdd->prepare('SELECT equipment_date_pull_jkt.referency, intervention_nature_time.predict_interv_nature, 					intervention_nature_time.predict_interv_duration,  
    			sec_to_time( sum( time_to_sec( predict_interv_duration ) ) ) AS temps  
    
    			FROM equipment_date_pull_jkt, intervention_nature_time
    						
    			WHERE WEEKOFYEAR( next_intervention_date ) = :week
    			AND equipment_date_pull_jkt.referency = intervention_nature_time.referency');
     
    $req->execute(array(
    		   ':week' =>	$week
    		    ));
     
     
     
    echo '<ul>';
    while ($donnees = $req->fetch())
    {
    ?>
    	Interventions provided for the week: <?php echo $week; ?>
    	Will take place on the equipment references: <?php echo $donnees['referency'] ; ?>
    	The type of intervention will <?php echo $donnees['predict_interv_nature'];?>
    	on the reference equipment <?php echo $donnees['referency'];?>
    	For it <?php echo $donnees['predict_interv_duration'];?> is scheduled
     
    <?php 
    }
    echo '</ul>';
    .../...
    Et la tout ce passe bien, dans la mesure ou j'ai le detail du travail a effectuer dans la semaine choisie.

    Les choses tournent mal lorsque pour obtenir le temp total du travail a effectuer dans la semaine choisie je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    .../...
    $req = $bdd->prepare('SELECT equipment_date_pull_jkt.referency, intervention_nature_time.predict_interv_nature, 					intervention_nature_time.predict_interv_duration,  
    			intervention_nature_time.sec_to_time( sum( time_to_sec( predict_interv_duration ) ) ) AS temps  
    .../...
     
    	Interventions provided for the week: <?php echo $week; ?>
    	Will take place on the equipment references: <?php echo $donnees['referency'] ; ?>
    	The type of intervention will <?php echo $donnees['predict_interv_nature'];?>
    	on the reference equipment <?php echo $donnees['referency'];?>
    	For it<?php echo $donnees['predict_interv_duration'];?> is scheduled
    	The planned total time is:<?php echo $donnees['temps']; ?>
    .../...
    Je n'obtiens ,maintenant, que le travail a fournir sur la premiere reference, par contre j'ai bien le temp total de la semaine. (mais les autre references n'aparaissent pas.)

    Et dans le cas ou je rajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .../...
    $req = $bdd->prepare('SELECT equipment_date_pull_jkt.referency, intervention_nature_time.predict_interv_nature,intervention_nature_time.predict_interv_duration, intervention_nature_time.sec_to_time( sum( time_to_sec( predict_interv_duration ) ) ) AS temps 
    .../...
    J'obtiens:
    Fatal error: Uncaught exception 'PDOException' with message SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION intervention_nature_time.sec_to_time does not exist
    Merci de me lire et d'apporter la reponse a mon probleme.

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intervention_nature_time.sec_to_time(...)
    sec_to_time() est une fonction coté MySQL, or dans ton code, tu commets une erreur de syntaxe en faisant une sorte de medley : champ/fonction.

    Ici MySQL considère que table.sec_to_time serait un champ, d'où l'erreur.

    On ne peu pas faire quelque chose comme :
    -> table.champ(...), ou même table.UNEFONCTION()


    Petite parenthèse au passage.
    - Tu devrais faire des jointures naturelles (JOIN, INNER JOIN, etc ...) plutôt que de simples égalités entre les tables.
    - Puis comme tu as des nom de table un peu à rallonge, exploiter les Alias pour les noms des tables (des raccourci) améliorerait la lisibilité/compréhension.
    - Essai de respecter cette convention d'écriture sur l'ensemble du code SQL et non partiellement comme mettre en majuscule toutes les instructions du langage (comme SELECT, FROM, WHERE, etc ... mais aussi les fonctions, comme WEEKOFYEAR, SEC_TO_TIME, TIME_TO_SEC, etc ...).

    Exemple :
    (e pour equipment_date_pull_jkt et i pour intervention_nature_time)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT e.referency, i.predict_interv_nature, i.predict_interv_duration,
    SEC_TO_TIME( SUM( TIME_TO_SEC( i.predict_interv_duration ) ) ) AS temps
    FROM equipment_date_pull_jkt e
    JOIN intervention_nature_time i ON e.referency = i.referency
    WHERE WEEKOFYEAR(e.next_intervention_date) = :week
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Merci pour le coup de pouce.
    Je vais tacher d'en faire bon usage ...

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

Discussions similaires

  1. affichage d'un type somme
    Par gorgonite dans le forum F#
    Réponses: 3
    Dernier message: 12/05/2008, 19h01
  2. affichage de l'heure systeme en temps reel
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/02/2008, 18h42
  3. somme des temps vb6 access
    Par meddeb2001 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 18/09/2007, 22h33
  4. somme de temps dans un StringGrid
    Par blondelle dans le forum C++Builder
    Réponses: 7
    Dernier message: 06/06/2006, 21h36
  5. [MFC]affichage mode detail d'une CFileDialog
    Par lucky dans le forum MFC
    Réponses: 13
    Dernier message: 14/09/2005, 22h05

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