Bien le bonjour en ce jour ensoleillé par de la Lorraine
Donc après avoir créer ma table des villes où se trouvent des points de ventes de mon client,
j'ai bien réussie à faire le lien entre les tables régions et villes.
visible ici
Le problème est qu'avec mes maigres connaissances en php

,
lorsque je fais une requête vers ma 3eme table (magasins) où se trouvent les coordonnées des magasins,
j'ai une erreur que je n'arrive pas voir pour afficher les coordonnées.
Je désire dans un 1er temps afficher en dessous à gauche, une liste du nom des points de vente s'il y en a plusieurs dans la même ville,
et en cliquant sur chaque nom pouvoir afficher ses coordonnées en dessous à droite.
S'il n'y a qu'un point de vente afficher de suite les coordonnées.
C'est possible ce que je demande?
Le soleil s'en va, je devrais peut-être être moins perfectionniste...
Voila mon code :
/* Connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect("$serveur", "$admin","$mdp");
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$sql1 = "SELECT `id_region`, `region`".
" FROM `region`".
" ORDER BY `id_region`";
$rech_regions = mysql_query($sql1);
$code_region = array();
$region = array();
/* On active un compteur pour les régions */
$nb_regions = 0;
if($rech_regions != false)
{
while($ligne = mysql_fetch_assoc($rech_regions))
{
array_push($code_region, $ligne['id_region']);
array_push($region, $ligne['region']);
/* On incrémente de compteur */
$nb_regions++;
}
}
?>
</p>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgmag">
<fieldset style="border: 3px double #f49247">
<legend>Sélectionnez une région</legend>
<select name="region" id="region" onchange="document.forms['chgmag'].submit();">
<option value="-1">- - Choisissez une région - -</option>
<?php
for($i = 0; $i < $nb_regions; $i++)
{
?>
<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_regions);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Création de la requête pour avoir les villes de cette région */
$sql2 = "SELECT `id_ville`, `ville`".
" FROM `ville`".
" WHERE `id_region` = ". $idr ."".
" ORDER BY `ville`;";
if($connexion != false)
{
$rech_ville = mysql_query($sql2, $connexion);
/* Un petit compteur pour les villes */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des villes */
$code_ville = array();
$nom_ville = array();
/* On va mettre les numéros et noms des villes dans les deux tableaux */
while($ligne_ville = mysql_fetch_assoc($rech_ville))
{
array_push($code_ville, $ligne_ville['id_ville']);
array_push($nom_ville, $ligne_ville['ville']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="ville" id="ville">
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value= "<?php echo($code_ville[$d]); ?>"<?php echo((isset($ville_selectionne) && $ville_selectionne == $code_ville[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_ville[$d].""); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_ville);
}
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Création de la requête pour avoir les magasins de cette ville */
$sql3 ="SELECT `id_mag`, `societe`, `adresse`, `cp`, `ville`, `telephone`".
"FROM `mag_gb`".
"WHERE `id_ville` = ".$ville."".
"ORDER BY `cp`;";
if($connexion != false)
{
$resultat = mysql_query($sql3, $connexion);
echo "<table>";
while( $row = mysql_fetch_assoc($resultat)) // erreur ligne 147
{
echo "<tr><td>$row->societe</td></tr>";
}
echo "</table>";
}
}
?>
<input type="submit" name="ok" id="ok" value="" class="submit" />
<p>
<?php
if(isset($_POST['ok']) && isset($_POST['region']) && $_POST['region'] != "")
{
$region_selectionnee = $_POST['region'];
$ville_selectionnee = $_POST['ville'];
?>
<p>Vous avez sélectionné le(s) magasin(s) de la région : <?php echo($region_selectionnee); ?> de la ville : <?php echo($ville_selectionnee); ?></p>
<?php
}
?>
</p>
</fieldset>
</form>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
J'ai noté où se situe ma ligne 147 qui est sur le
lien Modifié par Ipszy (12 Dec 2007 - 13:18)