Page 1 sur 1

Optimisation d'une petite portion de code

Posté : 14 sept. 2008, 00:34
par jojolapine
Bonsoir à tous (on bonjour peut-être?)
J'ai une petite question qui me taraude...
J'ai un bout de script, qui me récupère des dates dans une table, et j'aimerais les triées par avant aujorud'hui, et après...
Sachant que j'ai un traitement de format sur la dite date, avant de l'envoyer à la vue...
Donc en gros, est-ce qu'il vaut mieux ça:
$sql=	"SELECT 
			id_evenement, 
			description, 
			ville, 
			codepostal, 
			date_evenement,
			fin_evenement
		FROM 
			agenda 
		WHERE
			date_evenement>NOW();";
$resultats=$connexion->query($sql);
while($date= $resultats->fetch(PDO::FETCH_ASSOC)){
	if($date['fin_evenement']!=='0000-00-00 00:00:00'){
		$date_format=strftime("Du %e %B %Y",strtotime($date['date_evenement']));
		$date_format.=strftime(" au %e %B %Y",strtotime($date['fin_evenement']));
	} else {
		$date_format=strftime("Le %e %B %Y",strtotime($date['date_evenement']));
	}
	$dates[]=array('date'=>$date_format,'descri'=>$date['description'],'ville'=>$date['ville'],'cp'=>$date['codepostal']);
}

$sql=	"SELECT 
			id_evenement, 
			description, 
			ville, 
			codepostal, 
			date_evenement,
			fin_evenement
		FROM 
			agenda 
		WHERE
			date_evenement<NOW();";
$resultats=$connexion->query($sql);
while($date= $resultats->fetch(PDO::FETCH_ASSOC)){
	if($date['fin_evenement']!=='0000-00-00 00:00:00'){
		$date_format=strftime("Du %e %B %Y",strtotime($date['date_evenement']));
		$date_format.=strftime(" au %e %B %Y",strtotime($date['fin_evenement']));
	} else {
		$date_format=strftime("Le %e %B %Y",strtotime($date['date_evenement']));
	}
	$dates_old[]=array('date'=>$date_format,'descri'=>$date['description'],'ville'=>$date['ville'],'cp'=>$date['codepostal']);
}
qui est assez long, je pense, qui appel deux fois le serveur mysql... etc ou quelque chose comme ça:
$sql=	"SELECT 
			id_evenement, 
			description, 
			ville, 
			codepostal, 
			date_evenement,
			fin_evenement
		FROM 
			agenda";
$resultats=$connexion->query($sql);
while($date= $resultats->fetch(PDO::FETCH_ASSOC)){
	if($date['fin_evenement']!=='0000-00-00 00:00:00'){
		$date_format=strftime("Du %e %B %Y",strtotime($date['date_evenement']));
		$date_format.=strftime(" au %e %B %Y",strtotime($date['fin_evenement']));
	} else {
		$date_format=strftime("Le %e %B %Y",strtotime($date['date_evenement']));
	}
       if(strtotime($date['date_evenement'])>time()){
               $date_future[]=$dates[]=array('date'=>$date_format,'descri'=>$date['description'],'ville'=>$date['ville'],'cp'=>$date['codepostal']);
        } else { 
      $date_passee[]=$dates[]=array('date'=>$date_format,'descri'=>$date['description'],'ville'=>$date['ville'],'cp'=>$date['codepostal']);
        }
}
Donc voilà, à votre avis...
Je gère en php ou en SQL?
Merci d'avance

Posté : 14 sept. 2008, 01:19
par Sékiltoyai
Deux réponses :
- Benche
- La deuxième assurément…

Posté : 14 sept. 2008, 12:25
par jojolapine
Hum... c'est vrai que j'aurais pu "bencher" tout seul... :oops:
Et merci pour la deuxième réponse...!!