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 :

Script que je n'arrive pas a faire fonctionner [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2010
    Messages : 105
    Par défaut Script que je n'arrive pas a faire fonctionner
    Bonjour,

    j'ai encore besoin de votre aide.
    je voudrais lister pour chaque jour sur la période donné le nombre d'occupant trié par catégorie et type de garde.
    Mon scripte fonctionne mais les résultats ne sont pas cohérant.
    J'ai comme impression que mon tableau se vide quand je passe d'une boucle à l'autre.
    Merci pour votre aide

    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
    $debut_garde='2025-02-02';
            $fin_garde='2025-02-09';
     
            //requette count pour chiens ou chats en garde indivduel
            $select1 = $connexion->prepare("SELECT 
                DP.ID_prest,
                DP.num_devis,
                DP.debut_garde,
                DP.fin_garde,
                DP.ID_animal,
                D.num_devis,
                D.etat_devis,
                A.ID_animal,
                A.genre_animal,
                P.ID_prest,
                P.typ_prest,
                P.mode_garde,
                (DATEDIFF(DP.fin_garde,DP.debut_garde)+1) AS nb_jours
                FROM devis_prest_tab DP 
                JOIN devis_tab D ON D.num_devis=DP.num_devis
                JOIN animal A ON A.ID_animal=DP.ID_animal
                JOIN prestation P ON P.ID_prest=DP.ID_prest
                WHERE P.typ_prest=:typ_prest 
                    AND DP.debut_garde<=:date1 
                    AND DP.fin_garde>=:date2 
                    AND (D.etat_devis=:etat_devis OR D.etat_devis=:etat_devis1 OR D.etat_devis=:etat_devis2 OR D.etat_devis=:etat_devis3)
                order by DP.debut_garde
            ");
     
            //exécute requette indiv ou commun
                $select1->execute(array(
                    ':typ_prest'=>'gardes',
                    ':date1'=>$fin_garde,
                    ':date2'=>$debut_garde,
                    ':etat_devis'=>'envoyer',
                    ':etat_devis1'=>'attente',
                    ':etat_devis2'=>'valider',
                    ':etat_devis3'=>'facturer'
                ));
                $resultat1 = $select1->fetchAll(PDO::FETCH_ASSOC);
                $nbrligne=count($resultat1);
     
     
            $tbl=array();
            $i='0';    
     
            while($i<$nbrligne){     
                $date_jour=$debut_garde;
                $ii='0'; $nbr='0';  $nbcc='0'; $nbcind='0';    $nbccl='0';    $nbchind='0'; $nbchcol='0';
     
                //je boucle sur les jours du devis en cours de traitement
                while($ii<$resultat1[$i]['nb_jours']){        
                    $tbl[$date_jour]['total']['nb']= $nbr++;
     
                    if($resultat1[$i]['genre_animal']='chat'){
                        if($resultat1[$i]['mode_garde']='commun'){
                            $tbl[$date_jour]['chat_com']['nb']= $nbcc++;
                        }
                        elseif ($resultat1[$i]['mode_garde']='individuel'){
                            $tbl[$date_jour]['chat_indiv']['nb']= $nbcind++;
                        }
                        elseif ($resultat1[$i]['mode_garde']='colocation'){
                            $tbl[$date_jour]['chat_coloc']['nb']= $nbccl++;
                        }
                    }
                    elseif($resultat1[$i]['genre_animal']='chien'){
                        if($resultat1[$i]['mode_garde']='individuel'){
                            $tbl[$date_jour]['chien_indiv']['nb']= $nbchind++;
                        }
                        elseif ($resultat1[$i]['mode_garde']='colocation'){
                            $tbl[$date_jour]['chien_coloc']['nb']= $nbchcol++;
                        }
                    }
     
                    $date_jour= date('Y-m-d', strtotime($date_jour.' + 1 DAY'));
                    $ii++;
                }    
                $i++;
            }

  2. #2
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Comment avez-vous résolu votre problème ?

    Pierre

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2010
    Messages : 105
    Par défaut
    J'ai fais beaucoup plus simple

    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
    $date_jour=$debut_garde;
    		try 
    		{	
    			while($date_jour<=$fin_garde){
     
    				$c='0'; $z='0'; $zz='0';
    				foreach($resultat1 as $value) {	
     
    					if(	$value['genre_animal']==$G_animal->genre_animal
    						AND	$value['mode_garde']== $choix_cage
    						AND $value['debut_garde']<=$date_jour 
    						AND $value['fin_garde']>=$date_jour
    					)
    					{
    						if(	$z=='0' and  $c >$max_autoris){
    							$max_autorisation[]=changedateusfr($date_jour);	
    							$z++;
    						}	
     
    						if( $zz=='0' and  $c >$nb_box){
    							$zero_box[]=changedateusfr($date_jour);
    							$zz++;							
    						}	
    						$c++;
    					}
    				}//fin du foreach
     
    				$date_jour= date('Y-m-d', strtotime($date_jour.' + 1 DAY'));
    			}//fin du while
     
    		}//fin du try
    		catch(Exception $e) {
    		echo 'Problème de liaison à la base de données : ', 
    		$e->getMessage();exit();
    		}
     
    		if(!empty($max_autorisation['0'])){
    			$message3 = 'Maxi autorisation atteinte.<br>';
    			$pas_auto = $max_autorisation;
    		} 
    		if(!empty($zero_box['0'])){
    			$message2 = '<br>Plus de box disponible.<br>';
    			$pas_box = $zero_box;
    		}		
    		if(empty($zero_box['0']) AND empty($max_autorisation['0'])){$box=true;}

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

Discussions similaires

  1. une requête que je n'arrive pas à faire marcher
    Par JeanNoel53 dans le forum Firebird
    Réponses: 8
    Dernier message: 16/12/2013, 09h27
  2. Sélection que je n'arrive pas à faire
    Par Thewil dans le forum jQuery
    Réponses: 2
    Dernier message: 16/06/2009, 09h05
  3. script que je n'arrive pas à coder
    Par mussara dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/06/2006, 14h28
  4. Ce que je n'arrive pas à faire ou à trouver.
    Par warwink dans le forum Windows Vista
    Réponses: 13
    Dernier message: 16/06/2006, 17h00
  5. Une requête que je n'arrive pas à faire
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/12/2005, 13h53

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