Mon code marche mais il me semble complexe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mon code marche mais il me semble complexe

par abricot » 10 janv. 2007, 19:33

J'avais pris l'habitude de programmer comme ca car souvent je fais des tableau sur des tableau sur des tableau etc()... :shock:

pour ce qui est d'une function, ca pourrais être pas mal que j'en crais une, car je ne sais pas m'en servir! je vais essayer de creer une fonction tiens!
Ultim en ce qui concerne la constante oui c'est envisageable! etant donné que $nombre ne change pas! Ca pourrais m'entrainer

Ryle, j'aurais une petite question à te poser
Est ce que ca serais possible de faire un topic exercices sur ce forum, les moderateurs ou membres qui ont de l'experience donnent des instructions avec un delais et nous les debutants ont crais le programme en consequence? ca serais excellent!

par Ryle » 10 janv. 2007, 18:45

Je ne pense pas que les constantes soient plus optimisées (ou moins d'ailleurs) ques les variables classiques.

Le gros avantage par rapport aux variables, c'est qu'elles sont implicitement globales, donc pas besoin de les déclarer comme tel dans des classes ou des fonctions, mais comme il n'en a pas l'usage ici...

par Ultim4T0m » 10 janv. 2007, 18:34

Et $nombre étant constant, pourquoi ne pas en faire une constante ?

D'ailleurs, à ce propos, les constantes optimisent-elles le code dans ce genre de cas ?
<?php

define('NOMBRE', 5);

?>

par Ryle » 10 janv. 2007, 18:27

Bah il est très bien ce code.... y a pas grand chose à redire :)

Eventuellement, tu peux simplifier les 3 premiers if() (le 3ème étant le même que le 1er pour le cas ou $limite est à 0)
$limite = isset($_GET['limite']) ? $_GET['limite'] : 0;

if (is_numeric($limite) && $limite+$nombre < $total) { 
  $suivant = $limite + $nombre; 
  echo '<a href="'.$_SERVER['PHP_SELF'].'?limite='.$suivant.'">Suivant</a>'; 
} 
if (is_numeric($limite) && $limite > 0) { 
  $precedent = $limite - $nombre; 
  echo '<a href="'.$_SERVER['PHP_SELF'].'?limite='.$precedent.'">Précédent</a>'; 
} 
Et personnellement, quand j'ai une grosse quantité de html, je préfère sortir du php, mais c'est pas obligatoire :
<?php
while ($array = mysql_fetch_array($query)){ 
  ?>
      <tr> 
            <td width="900">Commentaire n°<?php echo $array['id'];?></td> 
         </tr> 
         <tr> 
            <td widht="900"> 
            <table width="900" border="0" cellspacing="0" cellpading="0"> 
            <tr> 
               <td width="150">Nom : <?php echo $array['pseudo'];?></td> 
               <td width="750">Mail : <?php echo $array['mail'];?></td> 
            </tr> 
            </table> 
            </td> 
         <tr> 
            <td width="900">Message : <?php echo $array['message'];?></td> 
         </tr> 
         <tr> 
            <td height="15"></td> 
         </tr>
  <?php 
      } 
?>
Tu n'es pas obligé non plus de mettre du width="900" partout (t'as d'ailleurs un "widht" qui traine ;)). Le simple fait d'avoir tes deux cellules à 150 et 750 imposera automatiquement une taille de 900px à tout le reste du tableau :)

Mon code marche mais il me semble complexe

par abricot » 10 janv. 2007, 18:02

Salut tout le monde! :shock: J'ai codé un truc, ce code permet d'afficher 5 resultat par page, j'ai besoin de vos avis car j'ai l'impression de vraiment me compliquer la vie:

Code : Tout sélectionner

<?php mysql_connect($host, $user, $password) or die ("Erreur de connexion à la base sql :/"); mysql_select_db('livredor_db') or die ("Impossible de trouver la BDD"); $query = mysql_query("SELECT count(id) FROM livredor"); $row = mysql_fetch_row($query); $total = $row[0]; $nombre = "5"; if (isset($_GET['limite']) && is_numeric($_GET['limite']) && $_GET['limite'] + $nombre < $total){ $limite = $_GET['limite']; $suivant = $limite + $nombre; echo '<a href="'.$_SERVER['PHP_SELF'].'?limite='.$suivant.'">Suivant</a>'; } if (isset($_GET['limite']) && is_numeric($_GET['limite']) && $_GET['limite'] != 0){ $limite = $_GET['limite']; $precedant = $limite - $nombre; echo '<a href="'.$_SERVER['PHP_SELF'].'?limite='.$precedant.'">Precedant</a>'; } if (!isset($_GET['limite'])){ $limite = 0; $suivant = $limite + $nombre; echo '<a href="'.$_SERVER['PHP_SELF'].'?limite='.$suivant.'">Suivant</a>'; } if ($total){ $query = mysql_query("SELECT * FROM livredor ORDER BY id DESC LIMIT $limite, $nombre"); echo '<table width="900" border="0" cellspacing="1" cellpadding="0" align="center">'; while ($array = mysql_fetch_array($query)){ echo '<tr> <td width="900">Commentaire n°'.$array['id'].'</td> </tr> <tr> <td widht="900"> <table width="900" border="0" cellspacing="0" cellpading="0"> <tr> <td width="150">Nom : '.$array['pseudo'].'</td> <td width="750">Mail : '.$array['mail'].'</td> </tr> </table> </td> <tr> <td width="900">Message : '.$array['message'].'</td> </tr> <tr> <td height="15"></td> </tr>'; } echo '</table>'; } else{ echo 'Aucune entrée'; } mysql_free_result($query);
Est-ce que j'ai bien codé? Ou est-ce que c'est médiocre? J'ai vraiment l'impression que c'est nul