1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
| <?php
//#### début entete ####
//### initialisation des variables ###
$budgetmin=isset($_POST['budgetmin'])?$_POST['budgetmin']:'';
$budgetmax=isset($_POST['budgetmax'])?$_POST['budgetmax']:'';
$lieu = isset($_POST['lieu']) ? $_POST['lieu'] : ''; //## var affectée condition | valeur si cond vraie | valeur (vide) si cond fausse
/*######### affichage des parametres de la recherche ##########*/
echo '
<div id="resultatsRecherche">
<h2>Paramètres de votre recherche</h2>
<p>Vous avez entré les paramètres suivants :</p>
<ul>
<li>Budget : de '.$budgetmin.' à '.$budgetmax.' €</li>
<li>Lieu : près de '.$lieu.'</li>
</ul>
</div>
';
//#############################################################################################
############################################ recherche par critere ###################################
//#############################################################################################
/*### connexion à la google map ###*/
$larecherche = "q=".urlencode($lieu)."+france";
$format = "output=csv"; $cleMap = "key=BQIAAAAT0UCLUFCoe_Dta7R7855DxRxdZW0Kk2nGiaUQaNfie2XDxgyFBSoR0PDFI7OscG_tHtjuk-8yAbVIg";
$requeteMap = "http://maps.google.com/maps/geo?".$larecherche."&".$format."&".$cleMap;
$reponseMap = file_get_contents($requeteMap);
if(@$reponseMap and @$tabloMap[0] == 0) {
$tabloMap = explode(",",$reponseMap); $lat=$tabloMap[2]; $lon=$tabloMap[3];
}
/*### mise en forme du tableau d'affichage ###*/
echo'<style type="text/css">
table td {
width: 100%;
border-style: solid;
border-color: #AAA;
border-width: 0 0 1px 0;
}
</style>';
$requete="
SELECT id_resultat,res_maplatt,res_maplong,res_url,res_photo,res_titre, res_description, id_ac_lieux, res_titre_lieu, /* création requete par rapport a un budget min et un budgetmax */
res_tarif_actuel, SQRT((res_maplong-".$lon.") * (res_maplong-".$lon.") + (res_maplatt-".$lat.") * (res_maplatt-".$lat.")) AS distance /* SQRT= racine carrée , calcul de l'hypothenuse par rapport à la longitude et la latitude, nous donne la distance d'un point à un autre */
FROM gs_cache_recherche AS CA
WHERE res_tarif_actuel<=".$budgetmax." AND res_tarif_actuel>".$budgetmin."
GROUP BY CA.id_ac_lieux
ORDER BY distance ASC
LIMIT 10"
;
//### Parcours/affichage des résultats ###
echo'<table cellsspacing="5" cellpadding="10">';
$res=mysql_query($requete); /*envoie de la requete au serveur*/
$coordCrit=Array(); /*creation du tableau pour stocker les resultats*/
if (isset($_POST['budget'])){ /*vérifie si le champ 'budget' a été renseigné*/
$i=0;
$nb_res_crit=mysql_num_rows($res); /*initialisation variable pour alternance couleurs dans tableau*/
while($donnees=mysql_fetch_array($res)) { /*on fait une boucle qui va faire un tour pour chaque enregistrement*/
$coordCrit[]=$donnees;
/*on remplit le tableau avec les données recupérées*/
}
}
foreach($coordCrit as $key=>$donnees){ /*passe en revue le tableau coordCrit, la clé de l'element courant est assigné à la variable $donnees*/
//#############################################################################################
############################################ affichage tags 2 ###################################
############################################ Ajout de tags sur la map ##########################
//#############################################################################################
echo '<script language="javascript">
var point = new GPoint("'.$donnees['res_maplong'].'"," '.$donnees['res_maplatt'].'" ); /*creation d un tag par rapport à la longitude et la latitude du lieu de l activité*/
var marker'.$donnees['id_resultat'].' = new GMarker(point);
map.addOverlay(marker'.$donnees['id_resultat'].');
GEvent.addListener(marker'.$donnees['id_resultat'].', "mouseover", function() { changeLegende(\'texte pour chaque '.str_replace("'","\'",$donnees['res_titre']).'\'); }); /*évenement lorsque le pointeur survole le tag : affiche le titre de l activité*/
GEvent.addListener(marker'.$donnees['id_resultat'].', "mouseout", function() { document.getElementById("infosCarte").innerHTML="texte lors du mouse out"; }); /*évenement lorsque le pointeur quitte le tag : affiche "texte lors du mouse out"*/
GEvent.addListener(marker'.$donnees['id_resultat'].', "click", function() { /*évenement lorsqu on clique le tag : voir la fonction suivante*/
/*### affiche le descriptif de l activité dans une infobulle ###*/
changeLegende(\''.str_replace("'","\'",$donnees['res_titre'].' - '.$donnees['res_titre_lieu']).'\');
var myHtml =\'<div id="infobulle" style="text-align: center;width: 300px;"><img src="http://www.guide-sensations.com/upload/photos_prestas/recherche_'.$donnees['res_photo'].'" align="left"><strong>'.str_replace("'","\'",$donnees['res_titre']).' - '.str_replace("'","\'",$donnees['res_titre_lieu']).'</strong>'.str_replace("\n"," - ",addslashes($donnees['res_description'])).'<a href="http://www.guide-sensations.com/'.$donnees['res_url'].'">Voir la fiche</a></div>\';
var latlng = new GLatLng("'.$donnees['res_maplatt'].'","'.$donnees['res_maplong'].'");
map.openInfoWindowHtml(latlng, myHtml);
});
</script>';
}
//############################################ fin recherche critere ###################################
//#############################################################################################
############################################ recherche par activité ###################################
//#############################################################################################
echo'
<style type="text/css">
table td {
width: 100%;
border-style: solid;
border-color: #AAA;
border-width: 0 0 1px 0;
}
</style>
<table cellspacing="5" cellpadding="10">';
if (isset($_POST['activite'])) {
$requete="SELECT id_resultat,res_maplong,res_maplatt,res_photo,res_titre,res_titre_lieu,res_description,res_url,id_ac_lieux,id_activite FROM gs_cache_recherche CACHE
WHERE id_activite_type=".$_POST['id_type'];
$reponse = mysql_query($requete);
//### création 1er tableau ###
$coord=Array();
if($reponse) {
$i=0;
$nb_res_act=mysql_num_rows($reponse);
while($row=mysql_fetch_array($reponse)){
$coord[]=$row;
}
}
foreach($coord as $key=>$row){
//#############################################################################################
############################################ affichage tags 2 ###################################
//#############################################################################################
echo '<script language="javascript">
var point = new GPoint("'.$row['res_maplong'].'"," '.$row['res_maplatt'].'" ); //-----> Ajout de tags sur la map
var marker'.$row['id_resultat'].' = new GMarker(point);
map.addOverlay(marker'.$row['id_resultat'].');
GEvent.addListener(marker'.$row['id_resultat'].', "mouseover", function() { changeLegende(\'texte pour chaque '.str_replace("'","\'",$row['res_titre']).'\'); });
GEvent.addListener(marker'.$row['id_resultat'].', "mouseout", function() { document.getElementById("infosCarte").innerHTML="texte lors du mouse out"; });
GEvent.addListener(marker'.$row['id_resultat'].', "click", function() {
changeLegende(\''.str_replace("'","\'",$row['res_titre'].' - '.$row['res_titre_lieu']).'\');
var myHtml =\'<div id="infobulle" style="text-align: center;width: 300px;"><img src="http://www.guide-sensations.com/upload/photos_prestas/recherche_'.$row['res_photo'].'" align="left"><strong>'.str_replace("'","\'",$row['res_titre']).' - '.str_replace("'","\'",$row['res_titre_lieu']).'</strong>'.str_replace("\n"," - ",addslashes($row['res_description'])).'<a href="http://www.guide-sensations.com/'.$row['res_url'].'">Voir la fiche</a></div>\';
var latlng = new GLatLng("'.$row['res_maplatt'].'","'.$row['res_maplong'].'");
map.openInfoWindowHtml(latlng, myHtml);
});
</script>';
}
}
/*################ pagination #######################*/
$messagesParPage=5;
//Nous allons afficher 5 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
//Nous allons maintenant compter le nombre de pages.
$nb_res=isset($_POST['budget'])?$nb_res_crit: $nb_res_act;
$nombreDePages=ceil($nb_res/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=0; // La page actuelle est la n°1
}
$tableauRes=isset($coordCrit) ? $coordCrit : $coord;
$numeroDepart=$pageActuelle*$messagesParPage+1;
$numeroArrivee=$numeroDepart+$nombreDePages;
for($i=$numeroDepart;$i<$numeroArrivee;$i++) {
/*print_r($tableauRes[$i]);
print_r ($nombreDePages);
if($_GET['page']==$pageActuelle){*/
if (isset($_POST['activite'])){
$retour_messages=mysql_query('SELECT id_resultat,res_maplong,res_maplatt,res_photo,res_titre,res_titre_lieu,res_description,res_url,id_ac_lieux,id_activite FROM gs_cache_recherche CACHE
WHERE id_activite_type='.$_POST['id_type'].' LIMIT '.$numeroDepart.','.$messagesParPage.'');
if($retour_messages){
while ($result=mysql_fetch_array($retour_messages)){
$tab[]=$result;
$a=0;
echo'<table cellspacing="5" cellpadding="10">';
echo '<tr class="ligne'.($a % 2).'"><td><a href="http://www.guide-sensations.com/'.$result['res_url'].'" onclick="window.open(this.href); return false;">'.$result['res_titre']." - ".$result['res_titre_lieu'].'</a></td>';
echo '<td><img src=http://www.guide-sensations.com/upload/photos_prestas/recherche_'.$result['res_photo'].'></td>';
echo '<br /></tr>';
$a++;
echo '</table>';
}
}
}
else{
$retour_messages_crit=mysql_query('SELECT id_resultat,res_maplatt,res_maplong,res_url,res_photo,res_titre, res_description, id_ac_lieux, res_titre_lieu, /* création requete par rapport a un budget min et un budgetmax */
res_tarif_actuel, SQRT((res_maplong-'.$lon.') * (res_maplong-'.$lon.') + (res_maplatt-'.$lat.') * (res_maplatt-'.$lat.')) AS distance /* SQRT= racine carrée , calcul de l hypothenuse par rapport à la longitude et la latitude, nous donne la distance d un point à un autre */
FROM gs_cache_recherche AS CA
WHERE res_tarif_actuel<='.$budgetmax.' AND res_tarif_actuel>'.$budgetmin.'
GROUP BY CA.id_ac_lieux
ORDER BY distance ASC
LIMIT '.$numeroDepart.','.$messagesParPage.'');
if($retour_messages_crit){
while ($result_crit=mysql_fetch_array($retour_messages_crit)){
$tab[]=$result_crit;
$a=0;
echo'<table cellspacing="5" cellpadding="10">';
echo '<tr class="ligne'.($a % 2).'"><td><a href="http://www.guide-sensations.com/'.$result_crit['res_url'].'" onclick="window.open(this.href); return false;">'.$result_crit['res_titre']." - ".$result_crit['res_titre_lieu'].'</a></td>';
echo '<td><img src=http://www.guide-sensations.com/upload/photos_prestas/recherche_'.$result_crit['res_photo'].'></td>';
echo '<br /></tr>';
$a++;
echo '</table>';
}
}
}
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for ($i = 1 ; $i <= $numeroArrivee ; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="/map/index.php?page='.$i.'">'.$i.'</a> ';
}
}
}
echo '</p>';
?> |
Partager