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 :

Simplication de code [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 205
    Points : 59
    Points
    59
    Par défaut Simplication de code
    Bonjour.

    Pour mon site web , j'ai créé un code qui permet de sélectionner un texte contenu dans ma base de donnée. Ce texte est choisi aléatoirement et différent d'une semaine à l'autre.

    Voici une portion de mon 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
    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
    
     <table width="375" border="0" align="left" cellpadding="0" cellspacing="0">
              <tr>
                <td colspan="4" class="titre_cat_accueil_droit">Astuce de la semaine</td>
              </tr>
              <tr>
                <td width="10" class="fond_categorie_accueil_droit">&nbsp;</td>
                <td colspan="2" class="fond_categorie_accueil_droit">&nbsp;</td>
                <td width="10" class="fond_categorie_accueil_droit">&nbsp;</td>
              </tr>
                <?php
    		
    	//-- on teste s'il existe une ligne dont la date de fin est plus grande
      //-- que la date courante ---------------------------------------------
      
      $sql = "SELECT titre_astuce,ID,description,date_fin,image,categorie,sous_categorie FROM compteur_click WHERE date_fin >= CURDATE()";
      $result = mysql_query($sql);	  
    	//-- s'il y a une ligne, on affiche -----------------------------------
      if (mysql_num_rows($result) > 0)
      {
        //-- si une ligne correspond, on affiche ----------------------------
     
    	
    	
    	
        //$ligne = mysql_fetch_object();
        //-- affichage ------------------------------------------------------
      while ($tab_select = mysql_fetch_array($result)) 
    {?>
    
    // ICI le code d'affichage du tableau dans le 1er cas avec tab_select[texte]
    
    
    <?php			}
    }
      else
      {
    		//-- on recherche l'ancienne ligne ----------------------------------    
        $sql = 'SELECT ID FROM compteur_click WHERE date_fin < CURDATE() ORDER BY date_fin DESC LIMIT 1';
        $result = mysql_query($sql);
       // $ligne = mysql_fetch_object();
        //-- on sauvegarde l'id de la ligne ---------------------------------
    	$tab_result =mysql_fetch_array($result);
    	
        $id = $tab_result['ID'];
    	
    	
    	
      //-- on s?lectionne une nouvelle ligne diff?rente de l'ancienne -----
        $sql2 = 'SELECT titre_astuce,ID,description,date_fin,image,categorie,sous_categorie FROM compteur_click WHERE ID <> ' . $id . ' ORDER BY RAND() LIMIT 1';
        $result2 = mysql_query($sql2);
        //$ligne = mysql_fetch_object();
    	//affichage
    	while ($tab_select2 = mysql_fetch_array($result2)) 
    {
    
    		?>
    
    
    //ICI le code d'affichage du tableau du cas 2 avec tab_select2[texte]
    
    
      <?php		
    
    			//-- on efface l'ancienne date --------------------------------------
        $sql = "UPDATE compteur_click SET date_fin = '' WHERE ID = $id";
        $result = mysql_query($sql);
    	
    
        //-- on met ? jour la date fin de la nouvelle ligne -----------------
    
    	$dateFin = date("Y-m-d", strtotime("next wednesday"));
        $sql = "UPDATE compteur_click SET date_fin = '".$dateFin."' WHERE ID = '".$tab_select2['ID']."' ;";
    	
                
                
        $result = mysql_query($sql);
      }
    }
    
    
    ?>
    Ce que je voudrais, c'est simplifier ce code, je pense qu'il y a moyen de ne pas afficher 2 fois le code d'affichage du tableau pour les 2 conditions. (1 pour chaque condition). Mais comment réaliser cette manipulation là?

    Merci par avance de vos réponses

  2. #2
    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
    basiquement tu peux regrouper ton code commun sous une fonction avec $tabselect comme paramètre.

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

Discussions similaires

  1. simplication du code
    Par omelhor dans le forum Langage
    Réponses: 1
    Dernier message: 18/09/2012, 14h28
  2. [XL-2003] Simplication de code
    Par FCL31 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/08/2009, 17h35
  3. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 03h17
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 10h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 18h45

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