Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as PHP by Kenobi62 ( 6 years ago )
<?php
//MODELE
//Affiche le tableau _POST
print_tbl($_POST, "_POST");
//isset — Détermine si une variable est déclarée et est différente de NULL
if (isset($_POST) && !empty($_POST)) {
foreach ($_POST as $k => $v) {
$_SESSION['ope'][$k] = $v;
}
}
$nResult = "";
$where = " WHERE ";
//START code distance: //$a != $b Différent TRUE si $a est différent de $b après le transtypage.
if(isset($_SESSION['ope']['distance']) && $_SESSION['ope']['distance'] != "" && $_SESSION['ope']['myLat'] != "" && $_SESSION['ope']['myLng'] != "" && $_SESSION['ope']['autocomplete_address'] != ""){
$latitude = $_SESSION['ope']['myLat'];
//print_tbl($_SESSION['ope'], "_SESSION['latitude']");
$longitude = $_SESSION['ope']['myLng'];
//print_tbl($_SESSION['ope'], "_SESSION['longitude']");
echo "<br />";
//formule de calcul de position par rapport à ma position ('myLat', 'myLng')
$formule="(6366*acos(cos(radians($latitude))*cos(radians(operateur_latitude))*cos(radians(operateur_longitude)-radians($longitude))+sin(radians($latitude))*sin(radians(operateur_latitude))))";
//la requête SQL prête à être exécutée:
$sql = "SELECT operateur_id,operateur_latitude, operateur_longitude, $formule AS dist FROM operateur_tbl WHERE $formule<='".$_SESSION['ope']['distance']."' ORDER by dist ASC";
echo "<br />".$sql."<br />";
$req = cd62_query($sql, $con);
$rep = cd62_assoc($req);
}else if(isset($_SESSION['ope']['operateur_ville']) && $_SESSION['ope']['operateur_ville'] != "0" && $_SESSION['ope']['operateur_ville'] != ""){
$sql = "SELECT * FROM operateur_tbl WHERE operateur_ville like '".$_SESSION['ope']['autocomplete_address']."'";
$req = cd62_query($sql, $con);
$rep = cd62_assoc($req);
$_SESSION['ope']['myLat'] = $rep[0]['operateur_latitude'];
$_SESSION['ope']['myLng'] = $rep[0]["operateur_longitude"];
$latitude = $_SESSION['ope']['myLat'];
$longitude = $_SESSION['ope']['myLng'];
if($_SESSION['ope']['distance'] == "" || $_SESSION['ope']['distance'] == "0") $calc = ' >=0 '; else $calc = " <= '".$_SESSION['ope']['distance']."' ";
//formule
$formule="(6366*acos(cos(radians($latitude))*cos(radians(operateur_latitude))*cos(radians(operateur_longitude)-radians($longitude))+sin(radians($latitude))*sin(radians(operateur_latitude))))";
//la requête SQL prête à être exécutée:
$sql = "SELECT operateur_id,operateur_latitude, operateur_longitude, $formule AS dist FROM operateur_tbl WHERE $formule $calc ORDER by dist ASC";
//$sql = "SELECT operateur_id,operateur_latitude, operateur_longitude, $formule AS dist FROM operateur_tbl WHERE $formule<='".$_SESSION['ope']['distance']."' ORDER by dist ASC";
echo "<br />".$sql."<br />";
$req = cd62_query($sql, $con);
$rep = cd62_assoc($req);
if(is_array($rep) && !empty($rep)){
foreach($rep as $key => $value){
if($where == " WHERE "){
if($_SESSION['ope']['distance'] == "0") $where .= " operateur_id NOT IN ( ";
else $where .= " operateur_id IN ( ";
} else $where .= ", ";
$where .= $rep[$key]['operateur_id'];
}
if($where != "") $where .= " ) ";
} else $nResult = "aucune";
}else if(isset($_SESSION['ope']['operateur_code_postal']) && $_SESSION['ope']['operateur_code_postal'] != "0" && $_SESSION['ope']['operateur_code_postal'] != ""){
$sql = "SELECT * FROM operateur_tbl WHERE operateur_code_postal like '".$_SESSION['ope']['autocomplete_address']."'";
$req = cd62_query($sql, $con);
$rep = cd62_assoc($req);
$_SESSION['ope']['myLat'] = $rep[0]['operateur_latitude'];
$_SESSION['ope']['myLng'] = $rep[0]["operateur_longitude"];
$latitude = $_SESSION['ope']['myLat'];
$longitude = $_SESSION['ope']['myLng'];
if($_SESSION['ope']['distance'] == "" || $_SESSION['ope']['distance'] == "0"){
$calc = ' >=0 '; $where .= "operateur_code_postal = '".$_SESSION['ope']['operateur_code_postal']."'";
}else { $calc = " <= '".$_SESSION['ope']['distance']."' ";
//formule
$formule="(6366*acos(cos(radians($latitude))*cos(radians(operateur_latitude))*cos(radians(operateur_longitude)-radians($longitude))+sin(radians($latitude))*sin(radians(operateur_latitude))))";
//la requête SQL prête à être exécutée:
$sql = "SELECT operateur_id,operateur_latitude, operateur_longitude, $formule AS dist FROM operateur_tbl WHERE $formule $calc ORDER by dist ASC";
$req = cd62_query($sql, $con);
$rep = cd62_assoc($req);
if(is_array($rep) && !empty($rep)){
foreach($rep as $key => $value){
if($where == " WHERE "){
if($_SESSION['ope']['distance'] == "0") $where .= " operateur_id NOT IN ( ";
else $where .= " operateur_id IN ( ";
} else $where .= ", ";
$where .= $rep[$key]['operateur_id'];
}
if($where != "") $where .= " ) ";
} else $nResult = "aucune";
}
}
//END code distance
//tableau _SESSION['ope']
print_tbl($_SESSION['ope'], "_SESSION['ope']");
//Contenu du post du formulaire
//print_tbl($_SESSION['ope'], "_SESSION['ope']");
//Affiche le tableau $_SESSION['ope']
//$_SESSION['ope']['myLat'] = "50.305257399999995" ;
//$_SESSION['ope']['myLng'] = "2.8737706" ;
//$_SESSION['ope']['service'] = "Département" ;
//$_SESSION['ope']['autocomplete_address'] = "Lens, France" ;
//Ajout du 02/07/20
/*req*/
$tbl = array();
$tbl['ope'] = array();
/*PAGINATION*/
/*numéro de page actuel*/
if (isset($_GET['page_no']) && $_GET['page_no'] != "") {
$page_no = $_GET['page_no'];
// echo $page_no; /*page en cours / actuel=active*/
} else {
$page_no = 1;
}
/*nombre total d'enregistrements par page*/
$total_records_per_page = 6;/*10*
/*calcul du numéro de page suivant et précédent*/
$offset = ($page_no - 1) * $total_records_per_page;
$previous_page = $page_no - 1;
$next_page = $page_no + 1;
$adjacents = "2";
if ($where == " WHERE ")
/*calculer le nombre total de pages pour la pagination*/
//$result_count = cd62_query($sql, $con,"SELECT COUNT(*) As total_records FROM `operateur_tbl`");
if ($nResult == "") {
//Suppression du ",France" issue du résulat de la recherche: ['autocomplete_address'] de Google!
$_SESSION['ope']['autocomplete_address'] = str_replace ( ', France' , '' , $_SESSION['ope']['autocomplete_address'] ) ;
//echo $_SESSION['ope']['autocomplete_address']; = Arras
//echo "<br />", "\n";
if(isset($_SESSION['ope']['service']) && $_SESSION['ope']['service'] != "" && $_SESSION['ope']['service'] != "Tous les services"){
if($where != " WHERE ") $where .= "OR";
$where .= " ( operateur_nom like '%".$_SESSION['ope']['service']."%' OR operateur_type_accueil like '%".$_SESSION['ope']['service']."%'
OR operateur_accueil_rdv like '%".$_SESSION['ope']['service']."%' OR operateur_accueil_libre like '%".$_SESSION['ope']['service']."%') ";
/* $where .= " ( operateur_type_accueil like '%".$_SESSION['ope']['service']."%' OR operateur_ville like '%".$_SESSION['ope']['autocomplete_address']."%' ) ";
$where .= " ( operateur_accueil_libre like '%".$_SESSION['ope']['service']."%' OR operateur_ville like '%".$_SESSION['ope']['autocomplete_address']."%' ) ";
$where .= " ( operateur_accueil_rdv like '%".$_SESSION['ope']['service']."%' OR operateur_ville like '%".$_SESSION['ope']['autocomplete_address']."%' ) "; */
//Gestion des résultats au clic sur btn [service] = "tous les services".
} else if(isset($_SESSION['ope']['service']) == "Tous les services"){
// echo "Tous les services";
$sql= "SELECT * FROM `operateur_tbl` $where";
// $allservices = $_SESSION['ope']['service'];
}
if(isset($_SESSION['ope']['autocomplete_address']) && $_SESSION['ope']['autocomplete_address'] != ""){
if($where != " WHERE ") $where .= "AND";
$where .= " ( operateur_code_postal like '%".$_SESSION['ope']['autocomplete_address']."%' OR operateur_ville like '%".$_SESSION['ope']['autocomplete_address']."%') ";
}
// if(isset($_SESSION['ope']['distance']) && $_SESSION['ope']['distance'] != ""){
// if($where != " WHERE ") $where .= "AND";
// $where .= " ( operateur_latitude like '%".$_SESSION['ope']['myLat']."%' AND operateur_longitude like '%".$_SESSION['ope']['myLng']."%') ";
// }
$tbl['nbre'] = array();
//$sql = "SELECT DISTINCT COUNT(*) As total_records FROM `operateur_tbl` WHERE operateur_nom like '%".$_SESSION['ope']['service']."%' AND operateur_ville = '".$_SESSION['ope']['autocomplete_address']."' $where";
$sql = "SELECT DISTINCT COUNT(*) As total_records FROM `operateur_tbl` $where"; //suppr du $where = affichage total records = 631
echo "<br />".$sql."<br />";
// exemple : SELECT COUNT(*) As total_records FROM `operateur_tbl` WHERE `operateur_nom`="Département" AND `operateur_ville` ="Arras"
// die($sql);
$req = cd62_query($sql, $con);
$tbl['nbre'] = cd62_assoc($req);
$total_records = $tbl['nbre'][0]['total_records'];
//echo "<br />".$sql."<br />";
print_tbl($tbl['nbre'], "tbl['nbre']"); // = Affiche le tableau $tbl['nbre'] , Affiche le tableau $tbl['nbre']['0'], $tbl['nbre']['0']['total_records'] = "35" ;
//= $tbl['nbre']['0']['total_records'] = "631" ;
/* exemple résultat = 18 résultats pour arras / $tbl['nbre'] n'est pas un tableau*/
$total_no_of_pages = ceil($total_records / $total_records_per_page);
$second_last = $total_no_of_pages - 1; // total pages min 1
//echo $total_no_of_pages; /* = 64 pages pour la ville d'arras*/
//nbre résultat par page
$_SESSION['sql'] = "SELECT * FROM `operateur_tbl` $where LIMIT $offset, $total_records_per_page";// =0, 6;
$sql = $_SESSION['sql'];
//= SELECT * FROM `operateur_tbl` where employeur_id LIMIT 0, 10Arras
$req = cd62_query($sql, $con);
$tbl['ope'] = cd62_assoc($req);
echo "<br />".$sql."<br />";
}else {
$tbl['nbre'][0]['total_records'] = 0;
$total_records = 0;
$total_no_of_pages = 0;
}
?>
Revise this Paste