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

Eléphant du PHP | 422 Messages

11 mai 2008, 08:54

$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']; 
Comment tu remplis le tableau $donnees ? En gros, comment fais-tu le lien entre $sql et $donnees ?

Ensuite à quoi sert de positionner des variables $magMin, $magMax, ... si elles ne sont pas utilisées dans la requête ?
Enfin, enlève les quotes autour des champs : ce sont des nombres, pas des chaînes de caractères.
BETWEEN 12 AND 25, pas BETWEEN '12' AND '25'

sara
Invité n'ayant pas de compte PHPfrance

12 mai 2008, 09:01

J'ai modifié mon code comme ceci ,mais j'ai toujours le méme résultat?

Code : Tout sélectionner

<?php $mag_min = $_POST["mag_min"]; $mag_max = $_POST["mag_max"]; $lat_min = $_POST["lat_min"]; $lat_max = $_POST["lat_max"]; $lon_min = $_POST["lon_min"]; $lon_max = $_POST["lon_max"]; $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"] ."')"; $query = mysql_query($sql) or die ("Requête incorrecte"); function debug_mysql() { $mail=true; // Si vous voulez qu'un mail vous soit envoyé en cas d'erreur (true false /* Affectation des lignes html du débug à la variable $debug */ $debug='<div align="center"><font size="4"><u>Erreur SQL !</u></font></div><br> '; $debug .='A la ligne '.__LINE__.' dans le fichier '.__FILE__; $debug .='<br>MySQL a répondu : '.mysql_error(); echo $debug.'<br>Un mail a été envoyé à l\'administrateur pour corriger ce bug, il sera réparé dans les plus brefs délais.<br>Merci de votre compréhension.'; // Affichage de l'erreur $result = mysql_numrows($query); if ($result) { // Si il y'a des résultats while ($rs = mysql_fetch_array($query)) { ?> <tr> <td><? echo $rs["mag"]; ?></td> <td><? echo $rs["lat"]; ?></td> <td><? echo $rs["lon"]; ?></td> </tr> <?php } // Fin instruction while } else { // Pas de résultat trouvé echo "Pas de résultat"; } mysql_free_result($query); // Libère la mémoire mysql_close(); // Ferme la connexion ?> </table> </body> </html>
Je veux avoir le résultat sous forme de tableau.

sara
Invité n'ayant pas de compte PHPfrance

12 mai 2008, 09:04

oups c'est ce code ci:

Code : Tout sélectionner

<?php $mag_min = $_POST["mag_min"]; $mag_max = $_POST["mag_max"]; $lat_min = $_POST["lat_min"]; $lat_max = $_POST["lat_max"]; $lon_min = $_POST["lon_min"]; $lon_max = $_POST["lon_max"]; $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"] ."')"; $query = mysql_query($sql) or die ("Requête incorrecte"); if ($result) { // Si il y'a des résultats while ($rs = mysql_fetch_array($query)) { ?> <tr> <td><? echo $rs["mag"]; ?></td> <td><? echo $rs["lat"]; ?></td> <td><? echo $rs["lon"]; ?></td> </tr> <?php } // Fin instruction while } else { // Pas de résultat trouvé echo "Pas de résultat"; } mysql_free_result($query); // Libère la mémoire mysql_close(); // Ferme la connexion ?> </table> </body> </html>

Mammouth du PHP | 19672 Messages

12 mai 2008, 09:30

sara, tu n'es pas logique : ce code ne peut pas fonctionner pour deux raisons principales :
-1- Tu ne te connectes nulle part à MySQL
-2- Tu utilises une variable $result qui sort de nulle part également.
-3- Tu ne lis pas les conseils que te donne caroube sur l'écriture de ta requête à propos des valeurs numériques.

Regarde bien ceci, ton code revu et corrigé, teste-le mais surtout lis les commentaires ajoutés et regarde les modifications.
<?php
/* Connexion */
$cnx = mysql_connect("localhost", "Ton-nom-d-utilisateur", "ton-mot-de-passe")
or die("La connexion a échoué.<br />\nErreur : ". mysql_error());

/* Valeurs recherchées */
$mag_min = $_POST["mag_min"];
$mag_max = $_POST["mag_max"];
$lat_min = $_POST["lat_min"];
$lat_max = $_POST["lat_max"];
$lon_min = $_POST["lon_min"];
$lon_max = $_POST["lon_max"];
/* Construction de la requête à partir des variables définies ci-dessus */
$sql = "SELECT * ".
       "FROM  seisme ".
       "WHERE (mag BETWEEN ". $mag_min ." AND ". $mag_max .") ".
       "  AND (lat BETWEEN ". $lat_min ." AND ". $lat_max .") ".
       "  AND (lon BETWEEN ". $lon_min ." AND ". $lon_max .")";
$exec = mysql_query($sql, $cnx)
or die ("Requête incorrecte<br />\n". $sql ."<br />\nErreur : ". mysql_error());

/* On vérifie qu'il y a au moins un résultat */
if (mysql_num_rows($exec) > 0)
{ 
    // Si il y a des résultats
?>
<table>
<?php
    while(false != ($rs = mysql_fetch_array($exec)))
    {
?>
  <tr>
    <td><?php echo $rs["mag"]; ?></td>
    <td><?php echo $rs["lat"]; ?></td>
    <td><?php echo $rs["lon"]; ?></td>
  </tr>
<?php
    } // Fin instruction while
?>
</table>
<?php
} 
else 
{
    // Pas de résultat trouvé
    echo "Pas de résultat";
}
mysql_free_result($query); // Libère la mémoire
mysql_close(); // Ferme la connexion
?>
</body>
</html>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

sara
Invité n'ayant pas de compte PHPfrance

12 mai 2008, 10:31

Super!!

Merci beaucoup ça marche :D , merci pour vos conseils , sans vous je n'y serai jamais arrivé.

Encore merci

Mammouth du PHP | 19672 Messages

12 mai 2008, 10:32

Super!!

Merci beaucoup ça marche :D , merci pour vos conseils , sans vous je n'y serai jamais arrivé.

Encore merci
Ce sera encore mieux pour toi si tu as bien saisi pourquoi ça marche ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 422 Messages

12 mai 2008, 10:51

Super!!

Merci beaucoup ça marche :D , merci pour vos conseils , sans vous je n'y serai jamais arrivé.

Encore merci
Tant mieux pour toi, parce que j'ai vraiment eu l'impression de parler dans le vide