cs_wholehog2
Messages postés63Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 janvier 2012
-
15 août 2007 à 15:49
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 2012
-
17 août 2007 à 17:18
bonjour
je suis tout nouveau dans le monde de php et des bases de données et j'ai un souci.
j'ai fait une page php qui donne plein d'info sur une base de données, mais celle ci est long à chargé vue qu'il y a pas mal de requètes.
je me demadé si je ne pouvait pas faire une autre page non visible par l'utilisateur qui se chargerait de faire toutes ces requètes (que je mettrais à jour à chaque mise à jour de ma base) ainsi je n'aurais plus qu'a pointer sur celle ci dans ma page d'info.
est ce possible et comment ?
d'avance merci.
A voir également:
Une seule expression peut être spécifiée dans la liste de sélection quand la sous-requête n'est pas introduite par exists.
cs_Aaron
Messages postés116Date d'inscriptionlundi 29 juillet 2002StatutMembreDernière intervention19 janvier 2009 15 août 2007 à 16:03
Bonjour,
Ca dépend de la nature des requêtes.
Si tu veux lire toutes les données d'une table c'est pas utile de faire :
$req1 = SELECT Champ1 FROM Table1...
$req2 = SELECT Champ2 FROM Table1...
...
$req70 = SELECT Champ70 FROM Table1...
Tu peux directement faire $req SELECT Champ1, Champ2, etc FROM Table1... ou bien $req SELECT * FROM Table1...
Si tu as plusieurs tables et que tu veux faire une seule requête sur ces différentes table dans le cas d'une SELECT, je te suggère d'aller jeter un coup d'oeil à ce lien.
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 15 août 2007 à 16:23
Hello,
si tu débute, ça m'étonnerait que tu fasses déjà des requêtes qui rament... à moins qu'elles soient très mal faites et qu'elles portent sur des milliers de lignes !
si le chargement des pages prend du temps, à mon avis c'est pour autre chose.
cs_wholehog2
Messages postés63Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 janvier 2012 15 août 2007 à 17:20
en fait j'ai 4 tables (naissance, bapteme, mariage, dece) avec dans chacune tous les actes de toutes les villes d'un département.
et pour chaque type (mariage, naissance, etc) et pour chaque ville je charche combien il y a d'actes.
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 15 août 2007 à 17:25
Pour ce qui est de dénombrer les actes, effectivement tu peux faire des compteurs dans une table à part. Tu incrémentes ou décrémentes ce compteur quand tu ajoutes/supprimes un acte. Pas besoin de TOUT recompter à chaque SELECT, sinon c'est l'horreur.
cs_wholehog2
Messages postés63Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 janvier 2012 15 août 2007 à 17:55
dans ma page php j'ai un tableau avec une ville sur chaque ligne et je veux afficher automatiquement le nombre total d'actes (naissance, bapteme, mariage, dece)
Evangun: si j'ai bien compris ta solution il faut que je crais une autre table ou il y aurait toutes les villes et dans la colonne d'a coté une requéte pour compter le nombre d'actes total ?
cs_wholehog2
Messages postés63Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 janvier 2012 16 août 2007 à 00:20
voila la fonction que j'ai ecrite, et qui se lance environ une trentaine de fois
function nbreactes ($codeinsee)
{
// on se connecte ? MySQL
$db = mysql_connect('estelle.barry.sql.free.fr', 'estelle.barry', 'bernard');
// on s?lectionne la base
mysql_select_db('estelle_barry',$db);
// on cr?e la requ?te SQL
$nb_dec = mysql_query("SELECT COUNT(*) FROM act_dec where CODCOM=$codeinsee");
$deces = mysql_fetch_row($nb_dec);
$nb_mar = mysql_query("SELECT COUNT(*) FROM act_mar where CODCOM=$codeinsee");
$mariage = mysql_fetch_row($nb_mar);
$nb_nai = mysql_query("SELECT COUNT(*) FROM act_nai where CODCOM=$codeinsee");
$naissance = mysql_fetch_row($nb_nai);
$nb_div = mysql_query("SELECT COUNT(*) FROM act_div where CODCOM=$codeinsee");
$divers = mysql_fetch_row($nb_div);
mysql_close;
cs_Aaron
Messages postés116Date d'inscriptionlundi 29 juillet 2002StatutMembreDernière intervention19 janvier 2009 16 août 2007 à 01:02
Et avec :
$var = mysql_query("SELECT COUNT(*) FROM act_dec, act_mar, act_nai, act_div where act_dec.CODCOM=$codeinsee");
$data = mysql_fetch_row($var);
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 16 août 2007 à 01:28
Aaron, ça ne fera qu'un décompte global, alors qu'il veut 3 nombres.
A mon avis Wholehog2 tu devrais faire comme j'ai dit, une table dédiée à tes stats, ce serait bien plus rapide. Après si tu trouves ça trop compliqué, fais comme tu veux, mais bon.