Bonjour !
J'ai suivi un topic posté ici pour construire une requete conditionnelle.
J'ai un formulaire sur une page index.php, les résultats de la requete se font sur recherche.php.
Je récupère les variables en méthode $_GET.
Dans ce formulaire :
champs date_debut et date_fin
trois listes déroulantes
Ma requête :
//récup des variables
if(!isset($_GET['date_debut'])) $date_debut="-1"; else $date_debut= $_GET['date_debut'];
if(!isset($_GET['date_fin'])) $date_fin="-1"; else $date_fin = $_GET['date_fin'];
if(!isset($_GET['langue'])) $ID_langue="langue"; else $ID_langue = $_GET['langue'];
if(!isset($_GET['pays'])) $ID_pays="pays"; else $ID_pays = $_GET['pays'];
if(!isset($_GET['type'])) $ID_type="type"; else $ID_type = $_GET['type'];
//...
//requête
mysql_select_db($database, $base);
$sqlCond = array();
$query = "SELECT * FROM table1, table2"; // début de la requête
if(!empty($date_debut)) // critère date_debut non vide
$sqlCond[] = "table1.date_debut >= '".$date_debut."'";
if(!empty($date_fin)) // critère date_fin non vide
$sqlCond[] = "table1.date_fin <= '".$date_fin."'";
if($ID_langue!="langue") // critère langue non vide
$sqlCond[] = "table1.ID_langue = '".$ID_langue."'";
if($ID_pays!="pays") //critère pays non vide
$sqlCond[] = "table1.ID_pays = '".$ID_pays."'";
if($ID_type!="type") //critère type non vide
$sqlCond[] = "table1.ID_type = '".$ID_type."'";
if(count($sqlCond)>0) // s'il ya des critères non vides, les sépares par un AND et complète la requête.
$query.= " WHERE " . implode(" AND ", $sqlCond);
$query.= " ORDER BY table1.date_debut ASC";
$result = mysql_query($query, $base) or die(mysql_error());
$row_result = mysql_fetch_assoc($result);
$totalRows_result = mysql_num_rows($result);
J'obtiens ce message d'erreur :
Incorrect key file for table '/tmp/#sql_5df6_0.MYI'; try to repair it
Ca vient d'où ? de mon script ou bien de l'hébergeur ?
Merci de m'éclairer !
