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
|
session_start(); // AU TOUT DEBUT du fichier
// ----------------------
// Connexion BDD
include('include_db.php');
// ----------------------
if (empty($_SESSION['Prenom'])) {
header('Location: index.php');
}
// ----------------------
// REQUETE : Construction
$sql_requete = "SELECT * FROM BDD ORDER BY Id DESC";
$sql_params = array();
// ----------------------
// Traitement : Recherche ?
if (!empty($_POST['Search'])) {
$search = str_replace(' ', '', $_POST['Search']);
if (is_numeric($search)) { // nombres
$sql_requete .= " WHERE Telephone LIKE ? OR CodePostale LIKE ?";
$sql_params = array('%'. $search . '%' , '%' . $search . '%');
} else { // chaine
$sql_requete .= " WHERE Prenom LIKE ? OR Nom LIKE ? OR Ville LIKE ? OR Email LIKE ? OR Adresse LIKE ? OR QPV LIKE ? OR Sourcing LIKE ? OR Dernierdiplome LIKE ? OR Formationvise LIKE ? OR Specialitee LIKE ? OR Niveau LIKE ? OR Metier LIKE ? OR Contratvise LIKE ? OR Rythme LIKE ? OR Structure LIKE ?";
$sql_params = array( '%' . $search . '%' , '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%');
}
}
// -------------
// -------------
// SESSION Recherche
if (!isset($_SESSION['recherche'])) {
unset($_SESSION['recherche']); // on vide tout
$_SESSION['recherche'] = array(); // on crée
}
// -------------
// Initialisation - valeurs par défaut
if (!isset($_SESSION['recherche']['critere1'])) {
$_SESSION['recherche']['critere1'] = -99;
} // Tous critere1
if (!isset($_SESSION['recherche']['critere2'])) {
$_SESSION['recherche']['critere2'] = 0;
} // Tous critere2
// -------------
// -------------
// Initialisation des array nécessaires
$sql_where = array(); // contiendra les bouts de code SQL, à partir des critères de recherche
$sql_param = array(); // array des paramètres à transmettre à execute(...)
// -------------
// Récupération : critere1
$_SESSION['recherche']['critere1'] = (isset($_POST['critere1']))? trim($_POST['critere1']) : $_SESSION['recherche']['critere1'];
switch ($_SESSION['recherche']['critere1']) {
case -99: // Tous
case 0:
// $sql_where : (rien)
break;
default:
$sql_where[] = " critere1 = :QPV ";
$sql_param[':QPV'] = $_SESSION['recherche']['critere1'];
}
// -------------
// Récupération : critere2
$_SESSION['recherche']['critere2'] = (isset($_POST['critere2']))? trim($_POST['critere2']) : $_SESSION['recherche']['critere2'];
switch ($_SESSION['recherche']['critere2']) {
case -99: // Tous
case 0:
// $sql_where : (rien)
break;
default:
$sql_where[] = " critere2 = :Sexe ";
$sql_param[':Sexe'] = $_SESSION['recherche']['critere2'];
}
// -------------
// On construit la chaine : "WHERE .... AND .... AND .... "
$clause_WHERE = (!empty($sql_where))? " WHERE " . implode(" AND ", $sql_where) : "";
// -------------
// requete
$sql_requete = "SELECT ".
" QPV, Sexe " .
" FROM BDD " . // (ICI, PAS de WHERE !)
$clause_WHERE .
" ORDER BY Id DESC" . // en cas de tri (non traité ici -> mais même principe)
" LIMIT 10" . // en cas de pagination (non traité ici -> voir "systèeme de pagination PHP")
";";
// -------------
// Préparation - Exécution de la requête
$sql_query = $db->prepare($sql_requete);
$sql_result = $sql_query->execute($sql_param);
// ----------------------
// Supprimer des utilisateurs
if (!empty($_POST["delete"])) {
$ids = implode(",", (array)$_POST["delete"]);
$final = $db->prepare("DELETE FROM `BDD` WHERE Id IN ($ids)");
$final->execute();
}
// ----------------------
// Requête : TOUT
$requete_total = $db->prepare($sql_requete);
$requete_total->execute($sql_params);
$elem_total = $requete_total->rowCount();
// ----------------------
// Pagination
$elem_page = 10;
$page_total = ceil($elem_total/ $elem_page);
if (!empty($_GET['page']) && $_GET['page'] > 0) {
$pageCourante = intval($_GET['page']);
} else {
$pageCourante = 1;
}
if ($pageCourante>$page_total) {
$pageCourante = $page_total;
}
$depart_page = ($pageCourante-1) * $elem_page;
// ----------------------
// Requête : pour cette page
$sql_requete_page = $sql_requete . " LIMIT ".$depart_page." , ".$elem_page." ";
$requete_page = $db->prepare($sql_requete_page);
$requete_page->execute($sql_params);
// ---------------------- |
Partager