8797 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

je travail actuellement sur un site internet et un problème me poursuit depuis quelque jours. Je vous explique:

j'ai créer une page php avec un formulaire pour que les gens rentrent leurs code postal, j'ai créer une base de données avec le nom et le code postal de chaque ville. J'ai également créer ma requête.

Ce que je voudrais c'est: une fois que les gens donnent leur code postal et le soumette au formulaire que cela me donne les noms des villes les plus proches.

Voici mes deux pages php, peut être ai-je un mauvais code? That is the question...

nous_trouver.php
<?php
$base=mysql_connect('serveur','login','pass');
mysql_select_db('ma_base',$base);
?>


<title>Trouver la concession du groupe Bodemer la plus proche de chez vous</title>
<link rel="stylesheet" type="text/css" href="style.css"/>

</head>

<style type="text/css">
<!--
a {
text-decoration: none;
color:#004c99;
}
//-->
</style>


<body>

<?php
include('logo.php');
?>
<?php
include('en_tête.php');
?>
<?php
include('barre_menu.php');
?>


<div id="recherche">
<form action="page_reponse.php" method="post">
<center><p>Entrez votre code postal</p><INPUT type="text" name="cdp" /></center>
<p><center><input type="submit" name="rechercher" /></center></p>
</form>
</div>






page_reponse.php

<? php
$cnx=mysql_connect("localhost","","");
$db=mysql_select_db("nous_trouver");
$cdp=$_POST["cdp"];

$requete1=mysql_query("SELECT nom_ville, code_postal
FROM code_concession
WHERE code_postal BETWEEN 14000 AND 15000
OR code_postal BETWEEN 50000 AND 51000
OR code_postal BETWEEN 61000 AND 62000
OR code_postal BETWEEN 56000 AND 57000
OR code_postal BETWEEN 22000 AND 23000;");

if($requete1)
{header('Location:base2.html');}

mysql_close();



<table>
while($result=mysql_fetch_object($requete1))
{
"<div align=\"center\"><tr><td>".$result->nom_ville."</td> <td>"$result->code_postal.</td></tr></div>\n$);

}
</table>
?>



Si des gens peuvent m'éclairer j'en serai ravis Smiley smile
Merci Smiley cligne
ça ouvre bien page_reponse.php mais rien d'autre de s'affichage alors que quand je test mon formulaire je rentre un code postal qui est censé m'afficher des réponses
Avec cette requete tu va TOUT récupérer, pas ce qui est a coté de ton code postal.

Lances avec firefox, telecharge l'extension firebug, actualise la page que tu teste et regarde si tu as une erreur quelconque.
ok merci Smiley smile
mais quelle requête pourrait être plus approprier pour que quand le un code postal qui est entrée est en 50... cela me donne les codes du même département et pareil pour les autres?
"between (floor($cdp/1000)*1000) and (floor(($cdp/1000)+1)*1000)"

A peu pres, faut verifier syntaxe et guillemets, mais c'est un truc du genre.
Modifié par Naemesis (29 May 2012 - 11:18)
Merci Smiley smile

Si sa te dérange pas pourrais tu m'expliquer brièvement cette requête? Car je n'ai jamais utilisé ce genre de requête.

Merci d'avance
tu as utilisé le between sur des informationss codées en dur. moi j'ai récupéré ce que rentre l'utilisateur, je l'ai divisé par 1000 puis je l'ai arrondi (si floor ne retourne rien, essayer ceil d'ailleurs) puis remultiplier par mille ce qui donne un truc du genre XX000.

exemple :
l'utilisateur entre 67250
je recupere, je divise par 1000 (=67.250) j'arrondis (=67) et je multiplie par mille (=67000) et je fais la meme chose en ajoutant un +1 : divise par 1000 (=67.250) j'arrondis (=67) j'ajoute 1 (=68) et je multiplie par 1000 (=68000).

j'obitnes une requete du genre :

select ... from ... where ... between 67000 and 68000.
J'ai changé ma requête mais il n'y a toujours rien qui s'affiche quand je rentre un code postal.

Je pense avoir une erreur dans mon script pour l'affichage de la requête mais je ne vois pas où?
$rep="<table>";
while($result=mysql_fetch_object($requete1))
{
$rep.= "<tr><td>".$result->nom_ville."</td> <td>".$result->code_postal."</td></tr>\n"
}
$rep.="</table>"

echo $rep;
Modifié par Naemesis (29 May 2012 - 13:21)
salut déjà regarde la source de ce qui est poster pour commencer a debuguer

tu fait un print_r ou echo ($_POST["cdp"]);

ensuite tu teste directement ta requête dans phpmyadmin
si ça marche il faut que tu mette en place un gestionnaire d'erreur pour ta connections en local du genre si la connections marche affiche ceci si ça marche pas prévient moi

pareil pour ta requête si ça donne un truc affiche si non rien trouvé

voila c'est toujours un peu laborieux les procédure de gestion mais ça serv bien dans ces cas la
Smiley cligne
courage a toi
euhhh ça sa serv a quoi


if($requete1)
{header('Location:base2.html');}


a quel moment tu te serv de ce qui est poster pour faire ta recherche
Modifié par leo2v (30 May 2012 - 16:01)
ma requête marche dans phpmyadmin, j'arrive juste pas à écrire à code bon pour que ça me renvoie les résultats sur ma page internet
je viens de mettre le echo ($_POST["cdp"]) > c'est normal que ça m'affiche le code postal que j'ai rentrée?
moi je ferais un switch case break en fonction de ce qui a été mis dans le champ de recherche
tu récupère ta var tu la colle dans le switch et en fonction tu adapte ta requete par tranche de code postale
sinon a chaque requête tu va tout parcourir
asoofy a écrit :
je viens de mettre le echo ($_POST[&quot;cdp&quot;]) &gt; c'est normal que ça m'affiche le code postal que j'ai rentrée?


bein oui ça te permet de vérifier si ce que tu a rentré dans ton champ est bien passé a l'autre page c'est juste un moyen de debug tu l'enlève après
Pages :