Optimisation d'une petite portion de code

ViPHP
ViPHP | 3607 Messages

14 sept. 2008, 00:34

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

ViPHP
ViPHP | 5924 Messages

14 sept. 2008, 01:19

Deux réponses :
- Benche
- La deuxième assurément…

ViPHP
ViPHP | 3607 Messages

14 sept. 2008, 12:25

Hum... c'est vrai que j'aurais pu "bencher" tout seul... :oops:
Et merci pour la deuxième réponse...!!