begin process at 2012 05 31 05:12:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Optimisation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Optimisation

dimanche 19 novembre 2006 à 16:27:40 | Optimisation

skiso

je sais que mon script n'est pas optimal et comporte surement des erreurs, je veux savoir es que je suis sur la bonne voie, si c'est pas le cas je veux apprendre et m'améliorer.

mon but est de charger un select dynamiquement, est un autre par rapport au choix du premier.

 
//******************** mon script

<? require_once('Connections/conect.php');

$currentPage = $HTTP_SERVER_VARS["PHP_SELF"];

if (isset($HTTP_GET_VARS['wil']))
{
$wil=$HTTP_GET_VARS['wil'];
mysql_select_db($database_conect, $conect);
$query_Rec_com = "SELECT * FROM communes WHERE wilaya='$wil' ORDER BY COMMUNE ASC";
$Rec_com = mysql_query($query_Rec_com, $conect) or die(mysql_error());
$row_Rec_com = mysql_fetch_assoc($Rec_com);
$totalRows_Rec_com = mysql_num_rows($Rec_com);
}

mysql_select_db($database_conect, $conect);
$query_Rec_wil = "SELECT wilaya FROM wilayas ORDER BY wilaya ASC";
$Rec_wil = mysql_query($query_Rec_wil, $conect) or die(mysql_error());
$row_Rec_wil = mysql_fetch_assoc($Rec_wil);
$totalRows_Rec_wil = mysql_num_rows($Rec_wil);

?>

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<form name="form1" method="post" action="">
  <p>&nbsp; </p>
  <table width="27%">
    <tr>
      <td><select name="wil" id="wil" onChange="javascript:document.location.href=(this.value);" STYLE="font-size : 9pt">
          <?php
          do { 
            $wilaya=$row_Rec_wil['wilaya'];
          ?>
          <option value="<?php printf("%s?wil=$wilaya", $currentPage); ?>" <?php if (!(strcmp($wilaya, $wilaya))) {echo "SELECTED";} ?>><font size="2"><?php echo $wilaya; ?></font></option>
          <?php
          } while ($row_Rec_wil = mysql_fetch_assoc($Rec_wil));
          $rows = mysql_num_rows($Rec_wil);
          if($rows > 0) {
          mysql_data_seek($Rec_wil, 0);
       $Rec_wil = mysql_fetch_assoc($Rec_wil);
          }
          if (isset($HTTP_GET_VARS['wil']))
    {
    ?>
    <option value="<?php echo $wil; ?>" selected><?Php echo $wil; ?></option>
    <?Php } ?>
        </select>
</td>
    </tr>
    <tr>
      <td><select name="select" id="select" STYLE="font-size : 9pt">
          <?php
          do { 
            $commune=$row_Rec_com['commune'];
          ?>
          <option value="<?php echo $commune; ?>" <?php if (!(strcmp($commune, $commune))) {echo "SELECTED";} ?>><font size="2"><?php echo $commune; ?></font></option>
          <?php
          } while ($row_Rec_com = mysql_fetch_assoc($Rec_com));
          $rows = mysql_num_rows($Rec_com);
          if($rows > 0) {
          mysql_data_seek($Rec_com, 0);
       $Rec_com = mysql_fetch_assoc($Rec_com);
          }
          ?>
        </select></td>
    </tr>
  </table>
  <p>&nbsp;</p>
</form>
</body>
</html>

//*******************


//********************* table commune

CREATE TABLE `communes` (
  `wilaya` varchar(25) NOT NULL default 'Blida',
  `commune` varchar(35) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `communes`
--

INSERT INTO `communes` VALUES ('Alger', 'Ain Beniane');
INSERT INTO `communes` VALUES ('Alger', 'Ain Taya');
INSERT INTO `communes` VALUES ('Alger', 'Alger Centre');
INSERT INTO `communes` VALUES ('Alger', 'Bab El Oued');
INSERT INTO `communes` VALUES ('Alger', 'Bab Ezzouar');
INSERT INTO `communes` VALUES ('Alger', 'Baba Hassen');
INSERT INTO `communes` VALUES ('Alger', 'Bachdjarah');
INSERT INTO `communes` VALUES ('Alger', 'Baraki');
INSERT INTO `communes` VALUES ('Alger', 'Beni Messous');
INSERT INTO `communes` VALUES ('Alger', 'Bir Mourad Rais');
INSERT INTO `communes` VALUES ('Alger', 'Birkhadem');
INSERT INTO `communes` VALUES ('Alger', 'Bologhine');
INSERT INTO `communes` VALUES ('Alger', 'Bordj El Bahri');
INSERT INTO `communes` VALUES ('Alger', 'Bordj El Kiffane');
INSERT INTO `communes` VALUES ('Alger', 'Boudouaou');
INSERT INTO `communes` VALUES ('Alger', 'Bourouba');
INSERT INTO `communes` VALUES ('Alger', 'Bouzareah');
INSERT INTO `communes` VALUES ('Alger', 'Casbah');
INSERT INTO `communes` VALUES ('Alger', 'Cheraga');
INSERT INTO `communes` VALUES ('Alger', 'Dar El Beida');
INSERT INTO `communes` VALUES ('Alger', 'Dely Ibrahim');
INSERT INTO `communes` VALUES ('Alger', 'Douera');
INSERT INTO `communes` VALUES ('Alger', 'Draria');
INSERT INTO `communes` VALUES ('Alger', 'El Achour');
INSERT INTO `communes` VALUES ('Alger', 'El Biar');
INSERT INTO `communes` VALUES ('Alger', 'El Hamma');
INSERT INTO `communes` VALUES ('Alger', 'El Harrach');
INSERT INTO `communes` VALUES ('Alger', 'El Madania');
INSERT INTO `communes` VALUES ('Alger', 'Al Magharia');
INSERT INTO `communes` VALUES ('Alger', 'El Mouradia');
INSERT INTO `communes` VALUES ('Alger', 'Gué de Constantine');
INSERT INTO `communes` VALUES ('Alger', 'Hammamet');
INSERT INTO `communes` VALUES ('Alger', 'Haraoua');
INSERT INTO `communes` VALUES ('Alger', 'Hussein Dey');
INSERT INTO `communes` VALUES ('Alger', 'Hydra');
INSERT INTO `communes` VALUES ('Alger', 'Kheraicia');
INSERT INTO `communes` VALUES ('Alger', 'Kouba');
INSERT INTO `communes` VALUES ('Alger', 'Les Eucalyptus');
INSERT INTO `communes` VALUES ('Alger', 'Mehalma');
INSERT INTO `communes` VALUES ('Alger', 'Marsa');
INSERT INTO `communes` VALUES ('Alger', 'Mohammadia');
INSERT INTO `communes` VALUES ('Alger', 'Oued Koriche');
INSERT INTO `communes` VALUES ('Alger', 'Ouled Chebel');
INSERT INTO `communes` VALUES ('Alger', 'Ouled Fayet');
INSERT INTO `communes` VALUES ('Alger', 'Rahmania');
INSERT INTO `communes` VALUES ('Alger', 'Rais Hamidou');
INSERT INTO `communes` VALUES ('Alger', 'Reghaia');
INSERT INTO `communes` VALUES ('Alger', 'Rouiba');
INSERT INTO `communes` VALUES ('Alger', 'Sidi Mhamed');
INSERT INTO `communes` VALUES ('Alger', 'Sidi Moussa');
INSERT INTO `communes` VALUES ('Alger', 'Souidania');
INSERT INTO `communes` VALUES ('Alger', 'Staouali');
INSERT INTO `communes` VALUES ('Alger', 'Saoula');
INSERT INTO `communes` VALUES ('Alger', 'Tessala El Mardja');
INSERT INTO `communes` VALUES ('Alger', 'Zeralda');
INSERT INTO `communes` VALUES ('Alger', 'Ben Aknoune');
INSERT INTO `communes` VALUES ('Alger', 'Belouizded');
INSERT INTO `communes` VALUES ('Alger', 'Oued Smar');
INSERT INTO `communes` VALUES ('Alger', 'Oued Romane');
INSERT INTO `communes` VALUES ('Alger', 'Birtouta');
       
//*******************************


//*********************** table wilayas

CREATE TABLE `wilayas` (
  `wilaya` varchar(15) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `wilayas`
--

INSERT INTO `wilayas` VALUES ('Alger');
INSERT INTO `wilayas` VALUES ('Blida');
INSERT INTO `wilayas` VALUES ('Tipasa');
INSERT INTO `wilayas` VALUES ('Boumerdes');
 
//******************

dimanche 19 novembre 2006 à 16:56:36 | Re : Optimisation

audayls

Salut,
Je suis loin d'être pro mais je peux toujours d'aider sur ce que je sais

==> Alors d'abords, n'utilises pas "<?" mais "<?php".

==> Ensuite n'utilises pas les doubles quotes " mais les simples quotes ' (pour une question de rapidité).
Donc par exemple ceci "$query_Rec_com ="SELECT * FROM communes WHERE wilaya='$wil' ORDER BY COMMUNE ASC";" donnera "$query_Rec_com ='SELECT * FROM communes WHERE wilaya="'.$wil.'" ORDER BY COMMUNE ASC';"

==> On n'utilise plus "$HTTP_SERVER_VAR" et "$HTTP_GET_VARS" mais "$_SERVER" et "$_GET" (à moins que tu es sur une version de PHP inférieur à 4.1.0)

==> Pourquoi utiliser une variable pour retenir une autre variable ? Utilise directement "$_SERVER['PHP_SELF']" ou "$_GET['wil']"

==> Ta requête MySQL n'est pas optimisé puisqu'elle utilise "*".
Donc "$query_Rec_com = "SELECT * FROM communes WHERE wilaya='$wil' ORDER BY COMMUNE ASC";" donnera "$query_Rec_com = 'SELECT wilaya,communce FROM communes WHERE wilaya="'.$_GET['wil'].'" ORDER BY COMMUNE ASC';"

==> Enfin le code HTML n'est pas valide (ce n'est pas important mais c'est bien en soit )

For every choice, a consequence (Fable)
lundi 20 novembre 2006 à 08:46:14 | Re : Optimisation

syndrael

Audalys,
Tu peux me dire pourquoi il est préférable d'utiliser '<?php'  ??
Pourkoa les simples quotes sont plus rapides ke les doubles ??
Merci de tes réponses
S.

lundi 20 novembre 2006 à 13:33:07 | Re : Optimisation

audayls

"<?php" est un tag pour PHP tandis que "<?" peut être un tag pour PHP et XML. De plus si l'option "short_open_tag" est à "Off" le code PHP entre "<?" ne sera pas interprété.

Pour les simples quotes et les doubles quotes c'est assez simple : lorsque tu mets des doubles quotes PHP doit analyser les possibles variables qui se trouvent dans cette chaîne, tandis que les simples quotes ne sont pas analysées par PHP. Ce qui fait que les simples quotes sont plus rapides (si tu veux inserer une variable il te faudra utiliser la concaténation)

For every choice, a consequence (Fable)
lundi 20 novembre 2006 à 14:57:48 | Re : Optimisation

syndrael

Merci de l'info..
et tu conseilles toujours <?='toto'?> ou il peut y avoir confusion avec XML ??
Pour les doubles quotes je ne savais po k'elles étaient analysées. Je me coucherai moins bête. Tu aurais un benchmark sur ce point pour connaitre la réélle impact ?? C'est juste pour savoir si je dois changer du code pour l'optimiser
S.

lundi 20 novembre 2006 à 18:26:07 | Re : Optimisation

audayls

" <?= 'toto' ?> " c'est pas bien ! lol Il faut mettre "<?phpecho'toto';?> ".

Pour le benchmark et les autres optimisations je te conseille d'aller sur [ Lien ] c'est le site de Anthomicro. Il explique très bien les raisons des optimisations.

For every choice, a consequence (Fable)
lundi 20 novembre 2006 à 18:35:42 | Re : Optimisation

syndrael

Alors je code 'po bien' !! LOL !!
Bon, je vais faire un effort désormais.. et sympa la page ke tu conseilles.. merci..
Toutes ces questions k'on se pose sur l'optimisation..
S.


lundi 20 novembre 2006 à 18:39:57 | Re : Optimisation

audayls

Ce n'est pas grave puisque maintenant tu vas "bien" codé
Il faut dire que l'optimisation est d'autant plus importante sur un language serveur puisque plus d'optimisation c'est plus de rapidité donc moins de ressources utilisées...

For every choice, a consequence (Fable)


Cette discussion est classée dans : insert, into, communes, values, alger


Répondre à ce message

Sujets en rapport avec ce message

REQUETE DE TRI [ORDER BY] [ par ] Bonjour !Je souhaiterais pouvoir classer mes données selon 3 critères : par nom de fiche, par date ou par thème.Les requêtes seules fonctionnent (quan Requete MySQL [ par vbguigui ] Voici ma requete :$requete="INSERT INTO tablemessages VALUES('$contenu')";quand mon contenu est "test" alors ca marche : "INSERT INTO tablemessages VA Envoyer des variables generées dynamiquement vers une autre page php [ par DzinVolt_Original ] Bonjour, J'ai cree un menu composé de 3 listes deroulantes dependante les une des autres (qui fonctionnent). Les "options" sont tirées d'une base de insertion multiple dans mysql_query() [ par Urukai1 ] Bonjour, je souhaite inserer plusieurs tuples sur plusieurs tables en meme temps, ce que je souahite faire c un commit comme sous oracle en gros "in Probléme au niveau de récupération de valeur psot [ par khafis ] Avant tout je m'explique : j'ai deux zones de liste multiple,  la premiére se remplit directement par la base de donnée , la deusiéme  sert  à recupér Problème de SQL [ par The_Wide_World ] HelloVoila une question qui concerne plus MySQL...J'ai cette commande : SELECT DISTINCT u.id, u.pseudo, g.Idprojet FROM User u LEFT JOIN Groupe g ON ( L'ordre dans les requêtes :-? [ par yazerty55 ] Bonjour,Grâce à l'aide de phpcs j'ai réussi à créer un fonction qui affiche la liste des catégories d'un petit annuaire que je suis en train de créer. Liste Déroulante + Order [ par xeroxiss ] Bonjour à tous ! J'ai créer 2 petites listes déroulantes remplient d'une longue série de divers marques de pc.Elle sont donc "liées" à une bdd. Ce que Saisie Automatique Sql [ par xeroxiss ] Bonjour à tout les petits ternautes rois du php ! Voila j'ai un petit soucis tout simple (je pense)... J'ai un formulaire en php, contenant des liste Remplir une table avec le contenu d'un fichier txt [ par boscoauhunier ] Je désire remplir une table avec le contenu d'un fichier txt Ma table se structure ainsi Structure de la table `dico` CREATE TABLE `dico` ( `id`


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales