pb syntaxe requêtes traitement formulaire avec pagination
Bonsoir,
J'ai un souci avec un script de traitement d'un formulaire de recherche (4 types de recherche possibles).
Tout marchait bien pour récupérer les résultats des 2 1ers types (départements ou communes) : un grand merci à Jérôme Réaux pour son aide.
Pour les 2 autres (étage ou roche), j'ai fait des if ... else. Et là : PAGE BLANCHE. C'est horripilant de ne pas avoir de message d'erreur.
1° : y a t-il un moyen d'obtenir un message d'erreur pour le php comme pour le sql ?
2° : quelqu'un aurait-il un peu de temps et la gentillesse de regarder mon code juste pour m'indiquer où se situe l'erreur.
C'est difficile pour moi de faire cohabiter le traitement du formulaire, les sessions, l'affichage des résultats, les requêtes qui dépendent des POST... Je cale.
Ci-dessous un extrait de mon script.
Un grand merci pour votre aide et une très bonne soirée,
Evelyne31
Code:
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
| <?php session_start(); // je démarre la session
// ------------------------
//Connexion à la base de données
mysql_connect('localhost', 'root', 'root');
mysql_select_db('xxxxx');
// ------------------------
// Initialisation des SESSION : si elles n'existent pas, on les crée
if(!isset($_SESSION["recherche"]["mot"])){
$_SESSION["recherche"]["mot"] = '';
}
if(!isset($_SESSION["recherche"]["type"])){
$_SESSION["recherche"]["type"] = '';
}
// ------------------------
// Récupération des données (critères de recherche) via le formulaire
if (isset($_POST["recherche"])){ // si le formulaire a été posté
if (isset($_POST["mot_recherche"])){
$_SESSION["recherche"]["mot"] = trim($_POST["mot_recherche"]);
}
if (isset($_POST["type_recherche"])){
$_SESSION["recherche"]["type"] = trim($_POST["type_recherche"]);
}
}
// ------------------------
// Création de la requête
switch (($_SESSION["recherche"]["type"])) {
case 'nomDepartement': // contient le mot ...$mot_recherche...
// IMPORTANT => mysql_real_escape_string(...) pour PROTEGER des injections SQL !!
$clauseWhere = " WHERE nomDepartement LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' ";
break;
case 'nomCommune':
// [......]
$clauseWhere = " WHERE nomCommune LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' ";
break;
case 'natureRoche':
// [......]
$clauseWhere = " WHERE natureRoche LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' ";
break;
case 'nomEtage':
// [......]
$clauseWhere = " WHERE nomEtage LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' ";
break;
default:
$clauseWhere = ""; // requête à faire par défaut
}
// ------------------------
// count pour Departement ou Commune
// Nombre total de résultats
if ($_SESSION['recherche']['mot'] = 'nomDepartement' or 'nomCommune');
{
$retour_total_query =
"SELECT count(ID_gite) AS total FROM GITE g
JOIN DEPARTEMENT d ON g.ID_departement = d.ID_departement
JOIN COMMUNE c ON g.ID_commune = c.ID_commune
".
$clauseWhere; // Critères de recherche
$retour_total = mysql_query($retour_total_query) or die (mysql_error());
$donnees_total = mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total = $donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
}
//count pour Etage
else ($_SESSION['recherche']['mot'] = 'nomEtage');
{
$retour_total_query =
"SELECT count(ID_gite) AS total FROM GITE g
JOIN AS_GITE_ETAGE age ON g.ID_gite = age.GITE_ID_gite
JOIN ETAGE e ON age.ETAGE_ID_etage = e.ID_etage
".
$clauseWhere; // Critères de recherche
$retour_total = mysql_query($retour_total_query) or die (mysql_error());
$donnees_total = mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total = $donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
}
// ------------------------
//requête pour Département ou Commune
//La requête sql pour récupérer les messages de la page actuelle.
if ($_SESSION['recherche']['mot'] = 'nomDepartement' or 'nomCommune');
{
mysql_query("SET NAMES 'utf8'");
$retour_messages_query =
"SELECT g.numGite
FROM GITE g
JOIN DEPARTEMENT d ON g.ID_departement = d.ID_departement
JOIN COMMUNE c ON g.ID_commune = c.ID_commune
".
$clauseWhere. // Critères de recherche
" ORDER BY numGite
ASC LIMIT ".$premiereEntree.", ".$messagesParPage." "; // Pagination*/
$retour_messages = mysql_query($retour_messages_query);
}
//requête pour Etage
else ($_SESSION['recherche']['mot'] = 'nomEtage');
{
mysql_query("SET NAMES 'utf8'");
$retour_messages_query =
"SELECT g.numGite
FROM GITE g
JOIN AS_GITE_ETAGE age ON g.ID_gite = age.GITE_ID_gite
JOIN ETAGE e ON age.ETAGE_ID_etage = e.ID_etage
".
$clauseWhere. // Critères de recherche
" ORDER BY numGite
ASC LIMIT ".$premiereEntree.", ".$messagesParPage." "; // Pagination...
Affichage HTML... |