Code : Tout sélectionner
<?php
//connexion à la base
$db = mysql_connect('localhost','root','') or die ('erreur de connexion');
//sélection de la base
mysql_select_db("test4");
//si tous les champs existent
if(isset($_POST['mag min']) && isset($_POST['mag max']) &&isset($_POST['lat min']) && isset($_POST['lat max'])&&isset($_POST['lon min']) && isset($_POST['lon max'])) {
//on renomme les variables pour éviter tout problème
$magMin = $_POST['mag min'];
$magMax = $_POST['mag max'];
$latMin = $_POST['lat min'];
$latMax = $_POST['lat max'];
$lonMin = $_POST['lon min'];
$lonMax = $_POST['lon max'];
//on attribue des valeurs par défaut si le champs est vide
if($magMin == "") {
$magMin = 0;
}
if($magMax == "") {
$magMax = 999;
}
if($latMin == "") {
$latMin = 0;
}
if($latMax == "") {
$latMax = 999;
}
if($lonMin == "") {
$lonMin = 0;
}
if($lonMax == "") {
$lonMax = 999;
}
//suite du traitement que tu faisais
//sinon si le formulaire n'a pas été envoyé
//traitement du cas où l'on arrive sur la page sans avoir validé de formulaire
$sql = "SELECT * ".
"FROM seisme ".
"WHERE (mag BETWEEN '". $_POST['mag min'] ."' AND '". $_POST['mag max'] ."') ".
" AND (lat BETWEEN '". $_POST['lat min'] ."' AND '". $_POST['lat max'] ."') ".
" AND (lon BETWEEN '". $_POST['lon min'] ."' AND '". $_POST['lon max'] ."')";
mysql_query($sql);
echo $donnees['id']; echo $donnees['mag']; echo $donnees['lat']; echo $donnees['lon'];
mysql_close();
}
else{
print("condition non respectée");
}
?>
Juste une intervention : non, le terme n'est pas réservé à la programmation orientée objet. On peut tout à fait faire le test unitaire d'une fonction.tests unitaires (le terme est plutôt réservé à la programmation orientée objet
if(isset($_POST['mag min']) && isset($_POST['mag max']) &&isset($_POST['lat min']) && isset($_POST['lat max'])&&isset($_POST['lon min']) && isset($_POST['lon max']))
n'est pas respectée. Donc au moins une de ces valeur n'est pas définie. Au passage pour gagner un peu en rapidité tu peux écrire if(isset($_POST['mag min'],$_POST['mag max'],$_POST['lat min'],$_POST['lat max'],$_POST['lon min'],$_POST['lon max']))
if(isset($_POST)) {echo '<pre>';print_r($_POST);echo '</pre>';}
ainsi tu auras tes variables $_POST affichées et tu verras celles qui manquent pour que ta condition soit remplie.<form action="form.php" method="POST">
<input name="mag" type="text">
<input name="lat" type="text">
<input name="lon" type="text">
</form>
Donc, si ensuite tu fais des test sur des mag_min, des mag_max, ... qui ne sont pas dans le tableau $_POST, il est certain que tu trouveras toujours qu'ils contiennent du vide.<form action="form.php" method="POST">
<input name="mag_min" type="text">
<input name="mag_max" type="text">
...
</form>
Code : Tout sélectionner
<html>
<head>
<title>insertion de données en PHP :: partie 1</title>
</head>
<body>
<form name="insertion" action="form.php" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>mag_min </td>
<td><input type="int" name="mag_min"></td>
</tr>
<td>mag_max </td>
<td><input type="int" name="mag_max"></td>
</tr>
<tr align="center">
<td>lat_min</td>
<td><input type="text" name="lat_min "></td>
</tr>
<td>lat_max</td>
<td><input type="text" name="lat_max"></td>
</tr>
<tr align="center">
<td>lon_min</td>
<td><input type="text" name="lon_min "></td>
</tr>
<td>lon_max</td>
<td><input type="text" name="lon_max"></td>
</tr>
<tr align="center">
<tr align="center">
<td colspan="2"><input type="submit" value="envoyer"></td>
</tr>
</table>
</form>
</body>
</html>Code : Tout sélectionner
<input type="text" name="lon_min ">