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 :

Fatal error: Cannot redeclare et Notice: Undefined variable:


Sujet :

PHP & Base de données

  1. #1
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut Fatal error: Cannot redeclare et Notice: Undefined variable:
    Bonjour à tous ;
    j'exploite une base access via php et j'ai des erreurs que j'ai du mal à trouver . Etant débutant , j'aurai vraiment besoin de vous pour savoir la raison de ces messages d'erreur ; en fait l'application en question consiste à afficher les renseignements sur les clients en entrant soit le numéro ou le nom .
    la partie avec le numéro marche impécablement par contre celui avec le numéro dès fois il marche pour certain client et dès fois il ne marche pas .
    il y a 3 fichiers :

    focntion.php // la fichier où j'ai mis une fonction qui convertit la date en format français
    Acceuil.php // ici on entre le nom ou le numéro
    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
     
     
    <html>
        <head>
            <title>Bienvenue  </title>
        </head>
        <body>
            <div>
                <h1>Recherche</h1>
     
     
     
            </div>
     
           <div>
     
            </div>
     
              <div>
     
            <form action="Particulier.php" method="POST">
     
            <label>entrer identifiant :</label>
     
            <select name="choix">
                <option value="nom">Nom</option>
                <option value="numero">num&eacute;ros</option>
     
             </select>
     
     
     
     
     
            <input type="text" name="identif"/><br />
            <input type="submit" value="valider"/>
     
            </form>
            </div>
     
       </body>
    </html>
    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
     
    <?php
    // fonctions qui convertissent les dates sous formats fraçàis
    // les dates sont de cette format 2002-05-09 00:00:00
     
                   function datefr($valeur){
     
    		 list($annee, $mois, $jour1) = explode("-", $valeur);
     
    		// on récupère le vrai jour
    		 $jour = explode(" ",$jour1);
     
    		 echo $jour[0].'/'.$mois.'/'.$annee;
     
     
     
    		 }
     
     
     
       ?>

    particulier.php

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
     
     
    <html>
        <head>
            <title> Particulier  </title>
            <link rel="stylesheet" media="screen" type="text/css"
                  title="styleparticulier" href="particule.css" />
     
         </head>
     
     
    <?php
     
    // permet de recuprer IDCabinet d'un client ou numero
          $idetifiantClient = $_POST['identif'];
     
     
        //  echo 'identifiant client:'.$idetifiantClient;
     
      // affichage resenseignement lie à un client
     
    $cnx = odbc_connect("DSN_carann","root","")or die ("impossible de se connecter a la base");
     
    // recherche par nom
        $choix = $_POST['choix'];
     
        if(isset ($choix)){
     
            switch($choix){
     
                // recherche par nom
                case "nom":
                    if(isset ($idetifiantClient)){
                          $sql = " select * from Client as CLT ,ClientParticulier as CLTP where CLTP.Nom like '$idetifiantClient' and
         CLT.IDCabinet = CLTP.IDCabinet";
                    }
     
                    break ;
     
                case "numero":
     
                    if(isset ($idetifiantClient)){
                         $sql = " select * from Client as CLT ,ClientParticulier as CLTP where CLT.IDCabinet like '$idetifiantClient' and
         CLT.IDCabinet = CLTP.IDCabinet";
                    }
     
     
     
                    break;
     
     
            }
        }
        else
            {
             echo 'erreur de parametre';
            }
     
     
     
     
     
     
    ?>
     
     
            <fieldset class="renseignement">
     
        <legend>Renseignements</legend>
     
     
    <?php
         $requete = odbc_do($cnx,$sql)or die (odbc_error());
     
     
             while ($result=odbc_fetch_object($requete)){
     
    			 $numeroClient = $result->IDCabinet;
     
          ?>
     
      <label class="gen">Nom:</label>
     
        <label class="valeur">
            <?php
     
                     if(isset($result->Nom)){
     
     
                  echo $result->Nom;
     
     
                     }
     
     
     
               ?>
             </label><br />
     
             <label class="gen">Prenom:</label>
     
        <label class="valeur">
            <?php
     
                         if(isset($result->Prenom)){
     
     
                  echo $result->Prenom;
     
     
                     }
     
              ?>
     
            </label><br />
     
    		 <label class="gen">Date de Naissance:</label>
              <label class="valeur">
             <?php
     
                        if(!empty($result->Datedenaissance)){
     
     
              //    echo "<b>".$result->Datedenaissance."</b> <br />";
     
                     require("fonction.php");
                     $naissance = (string) $result->Datedenaissance ;
     
                    datefr($naissance);
     
                        }
     
                   ?>
     
     
     
     
     
     
     
     
             </label><br />
     
    <?php
     
    // ici aussi çà peut poser un problème 
     
      $lienClientPolice =$result->Numdansclient;
     
     
      // ici se termine la premiere requete 
     
               }
    ?>
     
     
    <!-- deuxieme fieldset avec parametre de transition $lienClientPolice -->
     
    <fieldset class="contrat">
            <legend>Contrats</legend>
     
            <table class="souscontrat" >
     
                <thead>
                    <th>Types de contrats</th>
                     <th>Compagnie</th>
                    <th>Num&eacute;ro Contrat</th>
                    <th>Ech&eacute;ance</th>
                      <th>Fractionnement</th>
                        <th>Date Effet</th>
                        <th>Date R&eacute;siliation</th>
                         <th>Informations</th>
                          <th>Etat Contentieux</th>
                          <th>D&eacute;tails</th>
                </thead>
                <tbody>
     
                    <?php
     
                   // echo 'lien client:'.$lienClientPolice."<br />";
     
                    $sql2 = " select Num ,Codetypedegestion,datecreation, Typedepolice ,CodeCompagnie , NumPolice ,Codeetatpolice, DateEcheance,Codefractionnement,DenominationClient,Dossiercomplet,Codetypedepaiement,
                        Dateeffet , DateResiliation,CommentaireResiliation,CodeCtx , CodeUtilisateur,Revision,dateperte ,Datedernieravenant ,Dernierevisite,CodeCTRContrat,
                        montantprimeannuelleTTC , Indiceorigine from Police where Codeclient like'$lienClientPolice'";
     
                         $requete4 = odbc_do($cnx, $sql2)or die (odbc_error());
     
                          while ($result7=odbc_fetch_object($requete4)){
     
     
                              ?>
     
                        <tr>
     
                       <?php
     
     
     
     
                              // type de police
           //              if(!empty($result7->Typedepolice )){
     
                         $req= "select Type.Nomdutypedepolice from  Typepolice as Type  where Type.Numero= $result7->Typedepolice ";
     
                         $requetenompolice = odbc_do($cnx,$req)or die (odbc_error());
     
     
             while ($typepolice=odbc_fetch_object($requetenompolice))
                 {
     
                         $type=  $typepolice->Nomdutypedepolice;
     
     
                 }
     
                 ?>
     
                                <td>
                                   <?php
                                   if(isset ($type)){
                                         echo $type;
                                   }
     
                                   ?>
     
     
                                </td>
     
     
     
                  <?php
     
     
     
              //        }
                       // compagnie
     
     
         //          if(!empty($result7->CodeCompagnie )){
               $req2= "select Comp.Nomcompagnie from  Compagnie as Comp where Comp.NumeroCompagnie= $result7->CodeCompagnie ";
                 $requete5 = odbc_do($cnx,$req2)or die (odbc_error());
     
     
             while ($result8=odbc_fetch_object($requete5))
                 {
     
              $compagnie=  $result8->Nomcompagnie;
     
     
                 }
     
     
               ?>
                                   <td>
                             <?php
     
                             if(isset ($compagnie)){
                                   echo $compagnie; 
                             }
     
     
                             ?>
                                   </td>
     
                                   <td>
                <?php
     
                    if(isset ($result7->NumPolice)){
                          echo $result7->NumPolice ;
     
                    }
     
     
     
           } // ici se termine le requete 
                   ?>

    erreur :
    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
     
    //	<gras>1 ere erreur </gras>
    	 Renseignements  Civilité:   Mr
    Nom: leman
    Prenom: brelon
    Numéro: 265 noir
    Date de Naissance: 10/02/1947
    Situation familiale: Divorcé
    Profession: Depanneur
    Catégorie:
     
    Notes:
    L HABITATION A UNE AUTRE FICHE AU NOM DE KOITA-DOSSOU. / portable cassé Civilité: Mr
    Nom: leman
    Prenom: brelon
    Numéro: 265 noir
    Date de Naissance:
    Fatal error: Cannot redeclare datefr() (previously declared in C:\wamp\www\TestPhp\fonction.php:8) in C:\wamp\www\TestPhp\fonction.php on line 19
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // erreur 
     
     Renseignements
    Contrats
    Notice: Undefined variable: lienClientPolice in C:\wamp\www\TestPhp\Particulier.php on line 860
    Types de contrats 	Compagnie 	Numéro Contrat 	Echéance 	Fractionnement 	Date Effet 	Date Résiliation 	Informations 	Etat Contentieux 	Détails
    comme vous pouvez le remarque la 1ere erreur : c'est une erreur de redeclaration de la fonction datefr() et aussi ;
    comme vous pouvez le voir il répète 2 fois nom, prénom etc ...
    ce qui m'étonne c'est que qd j'essai sur d'autre client dès fois il affiche comme il faut
    j'ai enlevé toute une partie du code pour faciliter et cerner le problème


    la deuxième erreur : vu que la première requête se termine bien avant la deuxième ;
    j'ai fai une transition pour pouvoir utiliser la variable dans la requete suivante en faisant :

    $lienClientPolice =$result->Numdansclient;

    mais apparemment ; il n'attribue pas la valeur à$lienClientPolice pourtant la valeur de Numdansclient existe bel et bien dans la base


    Merci d'avance pour vos remarques

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut
    Pour le premier soucis, la ligne suivante est à l'intérieur d'une boucle while, le fonction est donc inclus plusieurs fois et la fonction déclarée plusieurs fois également...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require("fonction.php");
    Il faut inclure le fichier en dehors de la boucle ou utiliser la fonction require_once()

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2010, 17h39
  2. Fatal error: Cannot redeclare function checkdate()
    Par gscorpio dans le forum Langage
    Réponses: 2
    Dernier message: 08/07/2008, 16h28
  3. [Dates] Fatal error : Cannot redeclare class
    Par ediawara dans le forum Langage
    Réponses: 10
    Dernier message: 27/11/2007, 14h47
  4. Fatal error: Cannot redeclare extension()
    Par karimphp dans le forum Langage
    Réponses: 3
    Dernier message: 12/06/2007, 12h56
  5. Réponses: 3
    Dernier message: 30/11/2006, 20h54

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