Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 18h39   #1
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
Par défaut Optimisation de code

Bonjour j'essaye d'optimiser mon petit bout de code , c'est un script automatique saut qu'il est assez a faire le traitement et je vois pas comment l'optimiser
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$cx = Connexion::getConnexion();
	$query = "SELECT id_community FROM community";
	$insert = $cx->prepare($query);
	$insert->execute();
	$result = $insert->fetchAll();
	//$community = new Community();
 
	foreach($result as $key){
		$json = json_decode(file_get_contents('http://graph.facebook.com/'.$key['id_community'])); // Recupere les likes 
		$likes = $json->{'likes'};
 
		$insert2 = $cx->prepare("INSERT INTO fan(community_id_community, fan_nb, fan_date) VALUES (:community_id, :fan_nb, :fan_date)");
		$insert2->bindParam(':community_id', $key['id_community']);
		$insert2->bindParam(':fan_nb', $likes);
		$insert2->bindParam(':fan_date',$date);
		if($insert2->execute()){
		}
	}
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/05/2011, 20h47   #2
Invité régulier
 
Homme
Inscription : mai 2011
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mai 2011
Messages : 8
Points : 8
Points : 8
Ton programme est difficilement optimisable.
Si il est long à s'exécuter c'est certainement du au temps de récupération de la page (c'est plus un problème réseau qu'applicatif). Si tu veux t'en assurer tu peux placer un compteur de temps avant et après le file_get_contents et regarder le pourcentage de temps passer dans cette fonction par rapport au temps total d'exécution.


---------------

http://www.zap-buzz.com - le programme télé TNT du soir classé par rapport à l'intérêt des internautes.
zapbuzz est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 12/05/2011, 20h56   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
fait plutot :

Code :
foreach($insert as $key)
et suprime le fetchAll,
je plus long dans l'histoire des le file_get_contents, y'a peu être moyenne de récupérer plusieurs id
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 21h37   #4
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
pas très bien compris stealth35 ^^
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/05/2011, 22h01   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par misakilou Voir le message
pas très bien compris stealth35 ^^
PDOStatement est un Traverable, donc pas besoin de faire un fetchAll si c'est pour la parcourir juste après
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 10h50   #6
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
Woowww je suis impressionné la... je pensais pour récupérer des éléments d'un tableau il fallait faire un fetchAll , mais j'ai toujours du mal a comprendre que le fait de parcourir le $insert fait la même chose qu'un fetchAll
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 10h58   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par misakilou Voir le message
Woowww je suis impressionné la... je pensais pour récupérer des éléments d'un tableau il fallait faire un fetchAll , mais j'ai toujours du mal a comprendre que le fait de parcourir le $insert fait la même chose qu'un fetchAll
parce que c'est un Traversable
, donc PDOStatement peux être parcouru via foreach comme un tableau, en interne à chaque tour de boucle un fait appelle au fetch()
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 11h19   #8
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
je dormirai moins bête ce soir
Merci !
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 11h24   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
je crois que y'a moyen de récupérer plusieurs résultats en même temps avec le FQL
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h44.


 
 
 
 
Partenaires

Hébergement Web