Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www

sara
Invité n'ayant pas de compte PHPfrance

08 mai 2008, 22:04

J'ai esayé nmais ça ne marche toujours pas :( il m'affiche la condition n'a pas été respectée?????

sara
Invité n'ayant pas de compte PHPfrance

08 mai 2008, 22:05

voici le code modifié

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"); } ?>

Eléphant du PHP | 422 Messages

08 mai 2008, 23:44

tests unitaires (le terme est plutôt réservé à la programmation orientée objet
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.
Le test unitaire, c'est juste le test d'une unité indépendante du code. Et c'est le programmeur qui définit ce qu'est cette unité.

ViPHP
AB
ViPHP | 5818 Messages

09 mai 2008, 00:32

Ben si tu tombe sur 'condition non respectée' c'est que la condition
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']))

EDIT en haut de ta page php tu peux mettre temporairement
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.

sara
Invité n'ayant pas de compte PHPfrance

09 mai 2008, 09:53

Bonjour,

J'ai inséré le bout de code en haut de la page et effectivement ça m'affiche

Array
(
[mag] => 2
[lat] => 9
[lon] => 81
)

2,9 et 81 sont les valeurs maximale que j'ai posté, donc d'après vous celles qui manquent c'est celles qui ne remplissent pas la condition en l'occurrence les valeurs minimales , mais je ne comprend pas pourquoi ?? je suis désespéré :cry: à l'aide :cry:

Eléphant du PHP | 422 Messages

09 mai 2008, 10:00

Ton formulaire envoie 3 champs à cette page dans le tableau $_POST. Ces champs s'appellent mag, lat et lon. Tu as donc :
<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.

La source de ton problème semble donc être dans ton formulaire qui devrait normalement contenir tes 6 champs que tu testes. Du style
<form action="form.php" method="POST">
  <input name="mag_min" type="text">
  <input name="mag_max" type="text">
...
</form>

sara
Invité n'ayant pas de compte PHPfrance

09 mai 2008, 10:33

J'ai corrigé mon formulaire mais je n'arrive toujours pas à afficher le résultat de ma requette, j'ai seulement ça d'affiché?,
Array
(
[mag_min] => 5
[mag_max] => 8
[lat_min_] => 5
[lat_max] => 12
[lon_min_] => 5
[lon_max] => 25
)[/b]

ViPHP
AB
ViPHP | 5818 Messages

09 mai 2008, 19:09

Oui mais tu ne tombe plus sur 'condition non respectée' donc la condition est respectée. Il y avait des fautes que je n'avais pas vu dans ton code exemple "mag min" au lieu de "mag_min" (ne pas laisser d'espace vide). As tu vérifié que tous ces indices ont été corrigé dans tout ton code ?

Eléphant du PHP | 422 Messages

10 mai 2008, 00:47

C'est normal les _ après lon_min et lat_min ?

sara
Invité n'ayant pas de compte PHPfrance

10 mai 2008, 09:08

Bonjour,

J'ai remplacé les vides par des _ ,mais ça me redonne la me^me chose:
Array
(
[mag_min] => 0
[mag_max] => 12
[lat_min_] => 1
[lat_max] => 24
[lon_min_] => 0
[lon_max] => 24
)

condition non respectée

Je ne sais plus quoi faire, je ne trouve pas d'où vient le probléme? :cry:

Eléphant du PHP | 422 Messages

10 mai 2008, 15:55

Tu peux montrer le code de ton formulaire ?

sara
Invité n'ayant pas de compte PHPfrance

10 mai 2008, 16:03

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>

sara
Invité n'ayant pas de compte PHPfrance

10 mai 2008, 21:53

Pas de solution à mon probléme? :lol:

Eléphant du PHP | 422 Messages

10 mai 2008, 23:39

Code : Tout sélectionner

<input type="text" name="lon_min ">
Enlève l'espace après lon_min.
Il va falloir apprendre à lire du code et rechercher les erreurs si tu veux progresser dans la programmation de sites Web.

sara
Invité n'ayant pas de compte PHPfrance

11 mai 2008, 08:40

L'erreur ne vient pas de là, j'ai corrigé ,ça me donne exactement le me^me résultat.