Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: