Requete Update

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requete Update

par Freddo31 » 11 mai 2009, 23:09

<?php
		$connect = mysql_connect ("localhost", "root", "") or die ("Erreur de connexion à MySql"); //connexion à la base
		mysql_select_db ("BOMB") or die ("Impossible de sélectionner cette base de donnée");//sélection de la base
		
		$result = mysql_query ("SELECT * FROM competition");
		echo '<div align="center"><h1>Modification d\'une compétition</h1>';

		echo '&nbsp;&nbsp;&nbsp;&nbsp;';
		echo '<form action="update.php" method="POST">Quelle compétition voulez vous modifier?  <select name="compet">';
		while ($compet = mysql_fetch_assoc($result))
		{
			echo '<option value="'.$compet['idCompet'].'">'.$compet['idCompet'].'</option>';
		}
		echo '</select>';
		//echo'<input type="submit" value="Editer" class="button" /></form></div>';
		mysql_close($connect);
		
		
		echo '<table>';
					/*echo'<tr>';
						echo'<td class="label">Nouveau nom de la compétition :</td>';
						echo'<td><input type="text" name="idComp" /></td>';
					echo'</tr>';*/
					echo'<tr>';
						echo'<td class="label">Quel(s) environnement propose la compétition :</td>';
						echo'<td><select name="environnement">';
								echo'<option value="Stadium" selected="selected">Stadium</option>';
								echo'<option value="Coast">Coast</option>';
								echo'<option value="Island">Island</option>';
								echo'<option value="Desert">Désert</option>';
								echo'<option value="Bay">Bay</option>';
								echo'<option value="Rallye">Rallye</option>';
								echo'<option value="Snow">Snow</option>';
							echo'</select></td>';
					echo'</tr>';
					echo'<tr>';
						echo'<td id="boutton" colspan="2"><input type="submit" value="Editer" class="button" />&nbsp;<input type="reset" value="Effacer" class="button" />';
                        echo'</td>';
					echo'</tr>';
				echo'</table></form></div>';
?>
update.php
<?php
		/*$enviro = $_POST['environnement'];
		$comp = $_POST['idComp'];*/
		/*echo '<pre>';
		print_r ($_POST);
		echo '</pre>';*/
		mysql_connect ("localhost", "root", ""); //connexion à la base
		mysql_select_db ("BOMB");//sélection de la base
		
		mysql_query ("UPDATE competition SET environnement = '".$_POST['environnement']."' WHERE idCompet = '".$_POST['compet']."'") or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
		mysql_close();
?>

voila, ça fonctionne...j'utilisais le mauvais
$_POST['vaiable']
...j'utilisais le "idComp", au lieu du "compet"...du coup...ça fonctionnais pas...merci de votre aide les gars...ça éclaircie beaucoup toute vos réponse...et ça m'aide énormément dans mon travail...
encore mille fois merci

ps : vous risuqez de me voir très bietôt...pour d'autre soucis... :? :oops:

par dunbar » 11 mai 2009, 22:56

pour Dunbar, oui ça fonctionne, les variable passe bien, j'ai mis ton code, jjste aprés les affectations,

résultat -->

Code : Tout sélectionner

Array ( [compet] => UL [idComp] => [environnement] => Rallye )
mais dans la BDD, rien ne bouge!!

avec le OR DIE, pas d'erreur signalées...space!!!

mais j'en reviens à ce que je demandais...puis-je utiliser les attributs "name" dans la même page?
je vois que ça comme éventuel problème...
J'ai un soucis :?:
ds ta requete tu utilise le
WHERE idCompet = '".$_POST['idComp']
Mais d'après ce que tu nous montre le WHERE est vide puisque je voie ici que la valeur $_POST
[idComp] => est vide donc il est normal qu'il n'y a pas de mise a jour :!: enfin je pense :)

PArce que si je ne me trompe pas
UPDATE competition SET environnement = $enviro WHERE idCompet = $comp
tu désire mettre a jour le champ environnement qui possede idCompet correspondant a $comp mais comme $comp est vide il ne sait pas faire la mise a jour

par Freddo31 » 11 mai 2009, 22:49

pour Dunbar, oui ça fonctionne, les variable passe bien, j'ai mis ton code, jjste aprés les affectations,

résultat -->

Code : Tout sélectionner

Array ( [compet] => UL [idComp] => [environnement] => Rallye )
mais dans la BDD, rien ne bouge!!

avec le OR DIE, pas d'erreur signalées...space!!!

mais j'en reviens à ce que je demandais...puis-je utiliser les attributs "name" dans la même page?
je vois que ça comme éventuel problème...

par charabia » 11 mai 2009, 22:30

Utilise un OR DIE pour voir s'il n'y a pas d'erreur.
mysql_query("UPDATE competition SET environnement = $enviro WHERE idCompet = $comp") or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

par dunbar » 11 mai 2009, 22:23

A tu vérifier que tu reçois bien tes $variable $_POST ?
echo '<pre>';
print_r ($_POST);
echo '</pre>';

par Freddo31 » 11 mai 2009, 20:22

merci de ta réponse.
alors

Voila ce que j'ai essayé de mon coté
<?php
		$enviro = $_POST['environnement'];
		$comp = $_POST['idComp'];
		mysql_connect ("localhost", "root", ""); //connexion à la base
		mysql_select_db ("BOMB");//sélection de la base
		
		mysql_query ("UPDATE competition SET environnement = $enviro WHERE idCompet = $comp");
		mysql_close();
?>
--> la plus d'erreur, mais pas de modif dans la base.

avec ta méthode, pas d'erreur non plus, mais pas non plus de modif dans la base...donc je pense que le soucis viens du fait que j'utilise la variable sensé être "POST" dans la même page, vois-tu ce que je veux dire?

par dunbar » 11 mai 2009, 19:58

Salut,
Comme ceci je pense.
mysql_query ("UPDATE competition SET environnement = '".$_POST['environnement']."' WHERE idCompet = '".$_POST['idComp']."'");
        mysql_close();

Requete Update

par Freddo31 » 11 mai 2009, 19:35

Bonjour tout le monde.
je sais qu'il ne faus pas plus de 20 ligne de code...mais ans codes...difficiles d'exprimer...
donc voila, ici il y a les 2 pages PHP, plus le code d'erreur que ça engrange quand je clique sur le bouton "editer".
mon but est de modifier l'environnement de jeu d'une compétition, donc en faisant un requête UPDATE.
je me pose plusieurs questions...est ce que le modèle que j'ai ci dessous est possible? carj'utilise le "name" du select...et j'éssaye de l'utiliser dans la même pag, et de m'en servir dans la page php update.php pour faire ma requête...donc voila mon soucis...
$connect = mysql_connect ("localhost", "root", "") or die ("Erreur de connexion à MySql"); //connexion à la base
		mysql_select_db ("BOMB") or die ("Impossible de sélectionner cette base de donnée");//sélection de la base
		
		$result = mysql_query ("SELECT * FROM competition");
		echo '<div align="center"><h1>Modification d\'une compétition</h1>';

		echo '&nbsp;&nbsp;&nbsp;&nbsp;';
		echo '<form action="update.php" method="POST">Quelle compétition voulez vous modifier?  <select name="compet">';
		while ($compet = mysql_fetch_assoc($result))
		{
			echo '<option value="'.$compet['idCompet'].'">'.$compet['idCompet'].'</option>';
		}
		echo '</select>';
		//echo'<input type="submit" value="Editer" class="button" /></form></div>';
		mysql_close($connect);
		
		
		echo '<table>';
					echo'<tr>';
						echo'<td class="label">Nouveau nom de la compétition :</td>';
						echo'<td><input type="text" name="idComp" /></td>';
					echo'</tr>';
					echo'<tr>';
						echo'<td class="label">Quel(s) environnement propose la compétition :</td>';
						echo'<td><select name="environnement">';
								echo'<option value="Stadium" selected="selected">Stadium</option>';
								echo'<option value="Coast">Coast</option>';
								echo'<option value="Island">Island</option>';
								echo'<option value="Desert">Désert</option>';
								echo'<option value="Bay">Bay</option>';
								echo'<option value="Rallye">Rallye</option>';
								echo'<option value="Snow">Snow</option>';
							echo'</select></td>';
					echo'</tr>';
					echo'<tr>';
						echo'<td id="boutton" colspan="2"><input type="submit" value="Editer" class="button" />&nbsp;<input type="reset" value="Effacer" class="button" />';
                        echo'</td>';
					echo'</tr>';
				echo'</table></form></div>';
et voici mon page update.php
mysql_connect ("localhost", "root", ""); //connexion à la base
		mysql_select_db ("BOMB");//sélection de la base
		
		mysql_query ("UPDATE competition SET environnement = $_POST['environnement'] WHERE idCompet = $_POST['idComp'])";
		mysql_close();
Voici le code d'erreur...
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in D:\wamp\www\Team BOMB\gestion\update.php on line 5
Sachant que la ligne 5 c'est celle de l'UPDATE.

merci d'avance pour vos réponse.