8796 sujets

Développement web côté serveur, CMS

Bonjour,



une fois de plus, je fais appel à votre aide.

Voici le problème que je rencontre. J'ai 2 pages,la première est un simple formulaire à 1 champs qui permet de faire une recherche sur un numéro d'article. Sur cette même page apparaît le résultat. De cette page, on peut cliquer sur le numéro d'article pour éditer sa fiche. La seconde page est donc la fiche permettant de modifier les infos sur l'article. Le numéro d'article ($id_biens) entre la page 1° et la 2° se fait par un GET.

Chose étrange c'est que au début de mon code je récupère $id_biens sans problème mais lorsque je fais à nouveau appel à cette variable notamment pour ma requete sql, plus moyen d'avoir sa valeur ! Et donc,mes champs ne se préremplissent plus.

J'ai donc pensée à un problème de porté de variable, mais il ne me semble pas que ce soit le cas dans mon code. Je ne vois donc vraiment pas.



Peut-être l'un de vous aura une idée.



D'avance merci, voici mon code





 $id_biens=$_GET['id_biens'];//Récupération de l'id du bien à modifier

echo '<DIV class="container">';

	echo '<p>Modification de la fiche du bien : '.$_GET['id_biens'].'</p>';	

	echo '<hr />';

/*DEBUT TRAITEMENT MODIFICATION BIEN*/

/*---------------------------------*/	

if(isset($_GET['modifier_bien'])) //Si on demande de modifier un bien

		{

			//On protège la variable modifier_news pour éviter une faille SQL

			$_GET['modifier_bien']=mysql_real_escape_string(htmlspecialchars($_GET['modifier_bien']));

			

			//On récupère les infos de la news correspondante

			$retour=mysql_query('SELECT * FROM biens INNER JOIN communes ON biens.id_commune=communes.id_commune WHERE id_biens=\''.$_GET['id_biens'].'\'');

			$donnees=mysql_fetch_array($retour);

			//Récupération des données

			$bien=htmlentities($donnees['code_bien'], ENT_QUOTES,'UTF-8');

			$statut=htmlentities($donnees['code_statut'], ENT_QUOTES,'UTF-8');

			$adresse=htmlentities($donnees['adresse'], ENT_QUOTES,'UTF-8');

			$commune=htmlentities($donnees['commune'], ENT_QUOTES,'UTF-8');

			$pays=htmlentities($donnees['pays'], ENT_QUOTES,'UTF-8');

			$prix=htmlentities($donnees['prix'], ENT_QUOTES,'UTF-8');

			$description=htmlentities($donnees['description'], ENT_QUOTES,'UTF-8');

			$id_biens=$donnees['id_biens']; //Cette variable va servir pour se souvenir que c'est une modification

		}

		else //C'est qu'on rédige une nouvelle news

		{

			//Les variables sont vides, puisque c'est un nouveau bien

			$bien='';

			$statut='';

			$adresse='';

			$commune='';

			$pays='';

			$prix='';

			$descrition='';

			$option[]='';

			$id_biens=0;

		}

		

		

/*FIN TRAITEMENT MODIFICATION BIEN*/		

/*------------------------------*/	

	

$request_commune=mysql_query('SELECT commune, id_commune, code_postal FROM communes');//Requete pour la liste des communes

 

/*DEBUT FORMULAIRE AJOUT DE BIENS*/

/*------------------------------*/	

echo '<form action="gestion.php" method="POST" enctype="multipart/form-data">';

	echo '<fieldset>';

	echo '<legend>Vous êtes sur le point de modifier le bien : '.$id_biens.'</legend>';

	echo '<br />';

	echo '<p>Sélectionnez le type de bien</p>';

	echo '<br />';

 

//Affichage type bien		

if($donnees['code_bien']==10)

	{

	echo '<input type="radio" name="bien" value="Maison" checked="checked" ><label>Maison</label>';

	echo '<input type="radio" name="bien" value="Appartement" ><label>Appartement</label>';

	echo '<input type="radio" name="bien" value="Studio"><label>Studio</label>';

	echo '<input type="radio" name="bien" value="Magasin"><label>Magasin</label>';

	echo '<input type="radio" name="bien" value="Bureau"><label>Bureau</label>';

	}

 

if($donnees['code_bien']==20)

	{

	echo '<input type="radio" name="bien" value="Maison" ><label>Maison</label>';

	echo '<input type="radio" name="bien" value="Appartement" checked="checked" ><label>Appartement</label>';

	echo '<input type="radio" name="bien" value="Studio"><label>Studio</label>';

	echo '<input type="radio" name="bien" value="Magasin"><label>Magasin</label>';

	echo '<input type="radio" name="bien" value="Bureau"><label>Bureau</label>';	

	}

if($donnees['code_bien']==30)

	{

	echo '<input type="radio" name="bien" value="Maison" ><label>Maison</label>';

	echo '<input type="radio" name="bien" value="Appartement" ><label>Appartement</label>';

	echo '<input type="radio" name="bien" value="Studio" checked="checked" ><label>Studio</label>';

	echo '<input type="radio" name="bien" value="Magasin"><label>Magasin</label>';

	echo '<input type="radio" name="bien" value="Bureau"><label>Bureau</label>';		

	}

if($donnees['code_bien']==40)

	{

	echo '<input type="radio" name="bien" value="Maison" ><label>Maison</label>';

	echo '<input type="radio" name="bien" value="Appartement" ><label>Appartement</label>';

	echo '<input type="radio" name="bien" value="Studio" ><label>Studio</label>';

	echo '<input type="radio" name="bien" value="Magasin" checked="checked" ><label>Magasin</label>';

	echo '<input type="radio" name="bien" value="Bureau"><label>Bureau</label>';		

	}

	

if($donnees['code_bien']==50)

	{

	echo '<input type="radio" name="bien" value="Maison" ><label>Maison</label>';

	echo '<input type="radio" name="bien" value="Appartement" ><label>Appartement</label>';

	echo '<input type="radio" name="bien" value="Studio" ><label>Studio</label>';

	echo '<input type="radio" name="bien" value="Magasin" ><label>Magasin</label>';

	echo '<input type="radio" name="bien" value="Bureau" checked="checked" ><label>Bureau</label>';		

	}

//FIN Affichage type bien		

	

	echo '<br />';

	echo '<br />';

 

//Affichage Statut du bien

	echo '<p>Sélectionnez le statut du bien</p>';

	echo '<br />';

	if($donnees['code_statut']==10)

	{

	echo '<input type="radio" name="statut" value="vendre" id="10" checked="checked" /><label>A vendre</label>';

	echo '<input type="radio" name="statut" value="louer" id="20" /><label>A louer</label>';

	}

	if($donnees['code_statut']==20)

	{

	echo '<input type="radio" name="statut" value="vendre" id="10"  /><label>A vendre</label>';

	echo '<input type="radio" name="statut" value="louer" id="20" checked="checked"/><label>A louer</label>';

	}

//FIN Affichage Statut du bien

	echo '<br />';

	echo '<br />';

	

	echo '<label>Adresse du bien : </label><input type="text" name="adresse" value="'.htmlentities($donnees['adresse']).'" size="75" />';

echo '<br />';

echo '<label>Sélectionnez une commune : '.$commune.'</label>';

echo '<SELECT name="commune" size="1" value='.$commune.'>';

	echo '<OPTION>'.$commune.'</OPTION>';//Permet d'avoir un premier champs vide

	while($donnees_commune=mysql_fetch_array($request_commune))

			{

			echo '<OPTION name="commune" value="'.$donnees_commune['commune'].'">'.$donnees_commune['commune'].'</OPTION>';

			}

echo '</SELECT>';

echo '<label>Pays : </label>';

	echo '<SELECT name="pays">';	

	echo '<OPTION>'.$pays.'</OPTION>';

	echo '<OPTION name"Belgique">Belgique</OPTION>';	

	echo '<OPTION name"France">France</OPTION>';

	echo '<OPTION name"Luxembourg">Luxembourg</OPTION>';

	echo '<OPTION name"Pays-Bas">Pays-Bas</OPTION>';						

	echo '</SELECT>';

	echo '<br />';

echo '<label>Prix : </label><input type="text" name="prix" size="30" value="'.$prix.'"/> Euros';	

	echo '<br />';

	echo '<br />';

 

 

//Affichage des options

	echo '<td>Garage : ';

	if ($donnees['garage']==1)

		{

		echo '<input type="checkbox" name="option[]" value="garage" checked="true" >';		}

	else

		{

		echo '<input type="checkbox" name="option[]" value="garage" >';

		}

	echo '<td>';

	echo '</tr>';

echo '<tr>';

	echo '<td>Jardin : ';

 

	if ($donnees['jardin']==1)

		{

		echo '<input type="checkbox" name="option[]" value="jardin" checked="true" >';

		}

	else

		{

		echo '<input type="checkbox" name="option[]" value="jardin" >'; 

		}

	echo '<td>';

	echo '</tr>';

echo '<tr>';

	echo '<td>Grenier : ';

 

	if ($donnees['grenier']==1)

		{

		echo '<input type="checkbox" name="option[]" value="grenier" checked="true" >';

		}

	else

		{

		echo '<input type="checkbox" name="option[]" value="grenier">';

		}	

	echo '<td>';

	echo '</tr>';

echo '<tr>';

	echo '<td>Cave : ';

 

	if ($donnees['cave']==1)

		{

		echo '<input type="checkbox" name="option[]" value="cave" checked="true" >';

		}

	else

		{

		echo '<input type="checkbox" name="option[]" value="cave" >';

		}

//FIN Affichage des options

	echo '<br />';

	echo '<br />';

 

//Affichage des images du bien

echo '<p>Images enregistrées pour ce bien :</p>';

echo '<br />';

 

echo vignettes($id_biens); //Appel de la fonction pour afficher les vignettes des images

echo '<br />';

 

 

//Description du bien

echo '<label>Description du bien : </label><br /><textarea name="description" rows="20" cols="80">'.htmlentities($donnees['description']).'</textarea>';	

echo '<br />';

	echo '<br />';

	echo '<input type="hidden" name="id_biens" value="'.$id_biens.'" />';

echo '<input type="submit" name="modifier_bien" value="Modifier" id="'.$id_biens.'"/></a><input type="reset" value="Effacer"/>';

	echo '</fieldset>';

echo '</form>';	


Modifié par paintbox (29 Jul 2010 - 17:46)
Salut paintbox »

Dans ton premier div de ton code tu marque ceci :


$id_biens=$_GET['id_biens'];

echo '<DIV class="container">';

	echo '<p>Modification de la fiche du bien : '.$_GET['id_biens'].'</p>';	

	echo '<hr />';


Pourquoi ne marque tu pas ta variable ici ? » echo '<p> . . . : ' . $_GET['id_biens'] . '</p>';
Ne peux-tu pas marquez ta variable $id_biens ? »

++ zardoz »
Modifié par zardoz (29 Jul 2010 - 08:34)
Salut,

Si l'on parle bien de cette partie de ton code :
$id_biens = $_GET['id_biens'];

echo '<DIV class="container">';
echo '<p>Modification de la fiche du bien : '.$_GET['id_biens'].'</p>';	
echo '<hr />';
	
if (isset($_GET['modifier_bien'])) {
	$_GET['modifier_bien']=mysql_real_escape_string(htmlspecialchars($_GET['modifier_bien']));
	$retour=mysql_query('SELECT * FROM biens INNER JOIN communes ON biens.id_commune=communes.id_commune WHERE id_biens=\''.$_GET['id_biens'].'\'');
... je ne vois rien qui puisse faire changer ou annuler la valeur de $id_biens (ni même de $_GET['id_biens']). Es-tu sûr que isset($_GET['modifier_bien']) vaut true ?
Bonjour à vous 2,

merci pour votre aide.
Finalement c'est résolu, mon code fonctionnait correctement. Je ne sais pas pourquoi ça coinçait.

Encore merci