J'ai décidé de faire mon site avec le Framework cakephp et pour l'instant je galère un peu.
J'ai un petit problème avec une requête qui est un peu longue à charger, je m'explique :
J'ai un controller PrevisionsController.php où j'effectue cette requête :
for($i=1;$i < 121;$i++){
$this->Prevision->setSource("data_".$i."");
//On déclare les différentes variables ici
$params_ville = $this->params['url'];
if($params_ville['lon'] < 0){
$_long = $params_ville['lon']+ 360;
$_lat = $params_ville['lat'];
}else{
$_long = $params_ville['lon'];
$_lat = $params_ville['lat'];
}
$result = $this->Prevision->find('all',array(
'order' => 'SQRT(POW(`LAT`-'.$_lat.',2)+POW(`LONG`-'.$_long.',2)) ASC',
'limit' => '1'));
$data[$i] = $result['0']['Prevision'];
$this->set('data',$data);
$this->set('ville',$params_ville);
}
Je possède donc une base de donnée avec 120 tables (échéance), chaque table comportant 80 champs et contenant 14 763 lignes. Toute les structures des tables sont identique excepter les données à l'intérieure.La structure de la table :
ID, LAT, LONG, DATA1,DATA2, [...], DATA80
Sachant que les champs LAT et LONG sont indexés
Ma requête me donne un résultat sous cette forme là :
Array
(
[1] => Array ------------------------> Correspond à l'échéance
(
[ID] => 3049
[LONG] => 359.979762
[LAT] => 42.968525
[DATA1] => -0.024
[DATA2] => 23.227
[...] => ....
[DATA80] => -0.000375977
)
)
Après je n'ai plus qu'à récupérer mes données dans la vue sous cette forme là : $data['1']['DATA2'].Cependant l'affichage n'est pas instantané et m'est environ 5,5secondes à charger toute les données.
Donc je voulais savoir si c'est possible d'améliorer ma requête pour que l'affichage soit instantané car la je bloque un peu.
Codialement,
Ludovic