Aide pour optimisation

Eliays Messages postés 67 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 29 janvier 2009 - 8 sept. 2007 à 13:35
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 8 sept. 2007 à 14:55
Bonjour,
J'ai creer un code php avec une table :

CREATE TABLE `dd_zone` (
  `id` int(11) NOT NULL auto_increment,
  `zone` varchar(255) collate latin1_general_ci NOT NULL,
  `a1` varchar(255) collate latin1_general_ci NOT NULL,
  `a2` varchar(255) collate latin1_general_ci NOT NULL,
  `a3` varchar(255) collate latin1_general_ci NOT NULL,
  `a4` varchar(255) collate latin1_general_ci NOT NULL,
  `a5` varchar(255) collate latin1_general_ci NOT NULL,
  `a6` varchar(255) collate latin1_general_ci NOT NULL,
  `a7` varchar(255) collate latin1_general_ci NOT NULL,
  `b1` varchar(255) collate latin1_general_ci NOT NULL,
  `b2` varchar(255) collate latin1_general_ci NOT NULL,
  `b3` varchar(255) collate latin1_general_ci NOT NULL,
  `b4` varchar(255) collate latin1_general_ci NOT NULL,
  `b5` varchar(255) collate latin1_general_ci NOT NULL,
  `b6` varchar(255) collate latin1_general_ci NOT NULL,
  `b7` varchar(255) collate latin1_general_ci NOT NULL,
  `c1` varchar(255) collate latin1_general_ci NOT NULL,
  `c2` varchar(255) collate latin1_general_ci NOT NULL,
  `c3` varchar(255) collate latin1_general_ci NOT NULL,
  `c4` varchar(255) collate latin1_general_ci NOT NULL,
  `c5` varchar(255) collate latin1_general_ci NOT NULL,
  `c6` varchar(255) collate latin1_general_ci NOT NULL,
  `c7` varchar(255) collate latin1_general_ci NOT NULL,
  `d1` varchar(255) collate latin1_general_ci NOT NULL,
  `d2` varchar(255) collate latin1_general_ci NOT NULL,
  `d3` varchar(255) collate latin1_general_ci NOT NULL,
  `d4` varchar(255) collate latin1_general_ci NOT NULL,
  `d5` varchar(255) collate latin1_general_ci NOT NULL,
  `d6` varchar(255) collate latin1_general_ci NOT NULL,
  `d7` varchar(255) collate latin1_general_ci NOT NULL,
  `e1` varchar(255) collate latin1_general_ci NOT NULL,
  `e2` varchar(255) collate latin1_general_ci NOT NULL,
  `e3` varchar(255) collate latin1_general_ci NOT NULL,
  `e4` varchar(255) collate latin1_general_ci NOT NULL,
  `e5` varchar(255) collate latin1_general_ci NOT NULL,
  `e6` varchar(255) collate latin1_general_ci NOT NULL,
  `e7` varchar(255) collate latin1_general_ci NOT NULL,
  `f1` varchar(255) collate latin1_general_ci NOT NULL,
  `f2` varchar(255) collate latin1_general_ci NOT NULL,
  `f3` varchar(255) collate latin1_general_ci NOT NULL,
  `f4` varchar(255) collate latin1_general_ci NOT NULL,
  `f5` varchar(255) collate latin1_general_ci NOT NULL,
  `f6` varchar(255) collate latin1_general_ci NOT NULL,
  `f7` varchar(255) collate latin1_general_ci NOT NULL,
  `g1` varchar(255) collate latin1_general_ci NOT NULL,
  `g2` varchar(255) collate latin1_general_ci NOT NULL,
  `g3` varchar(255) collate latin1_general_ci NOT NULL,
  `g4` varchar(255) collate latin1_general_ci NOT NULL,
  `g5` varchar(255) collate latin1_general_ci NOT NULL,
  `g6` varchar(255) collate latin1_general_ci NOT NULL,
  `g7` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;

voici le code:

$reponse = mysql_query("SELECT * FROM dd_zone WHERE id='1' ");
while ($donnees = mysql_fetch_array($reponse) )
{
echo '
echo '
echo '
echo '
...... ect ...
}
maintenant je voudrais savoir si il existe un moyen pour optimiser le code ou/et la table.
merci.

4 réponses

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
8 sept. 2007 à 14:17
Salut,
Si tu ne changes pas la structure de ta base voici quelques petits conseils (je ne suis pas un expert dans les bases de données mais normalement c'est bon =P)
<?php

// N'utilise pas "*" mais rentre plutôt les champs que tu vas utiliser.
$rQuery = mysql_query('SELECT a1, a2, a3, a4, a5, a6, a7, b1, b2, b3, b4, b5, b6, b7, c1, c2, c3, c4, c5, c6, c7, d1, d2, d3, d4, d5, d6, d7, e1, e2, e3, e4, e5, e6, e7, f1, f2, f3, f4, f5, f6, f7, g1, g2, g3, g4, g5, g6, g7 FROM dd_zone WHERE id="1"');

// Tu ne récupères qu'un seul résultat alors la boucle est inutile.
$array = mysql_fetch_array($rQuery);

// Dans un echo utilise les virgules "," à la place des points ".".
echo '

etc...
';

?>

For every choice, a consequence (Fable)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 sept. 2007 à 14:43
Hello,

moi je pige pas ta table donc bon...t'es vraiment obligé de faire une table pareille?

Pour la requête, ok avec Audayls.
Pour l'affichage, moins...;-)
Dans le plus simple des cas :
<?php
$aImgs = mysql_fetch_array($sQuery, MYSQL_FETCH_NUM);
foreach ($aImgs as $sImg) {
    echo '';
}
?>
ça fait quand même moins de lignes à écrire ;-)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 sept. 2007 à 14:47
Salut

pour un jeux d'echecs, tu devrais :
soit stoquer une liste des coups,
soit stoquer une liste :
(position, piece)
soit stoquer une liste :
(piece, position)
soit stoquer le serialize d'un array

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 sept. 2007 à 14:55
Je doute que ce soit pour un jeu d'échec, ou alors il a oublié une case sur l'axe des X et des Y.
0
Rejoignez-nous