Php et update mysql

Fermé
pierdu17 Messages postés 77 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 15 novembre 2011 - 14 nov. 2008 à 21:15
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 - 15 nov. 2008 à 02:21
Bonjour,
j'ai un souci, je veux avec ma première page php renseigner des informations sur une ville d'un pays et avec ma deuxième le traiter et l'ajouter dans la base de données. Mon fichier m'indique bien que la mise a jour est effectué car j'ai fait un echo dans le if de la mise a jour. mais quand je vérifie dans la base de données les informations ne sont pas inscrits.
voila mon code.

<html>
<head>
	<meta http-equiv="Content-type" content="text/html;charset=ISO-8859-1">
	<title>Liste des villes par Pays</title> </head>
	<body>
	
<?php
	//connexion à la base de données
	$connexion = mysql_connect("localhost","root","");

	if ($connexion)
	{ // connexion réussie
	mysql_select_db("Europe",$connexion);
	$requete="select NomPays from Pays;";
	$resultat= mysql_query($requete,$connexion);
	$ligne=mysql_fetch_assoc($resultat);
	echo "<h1> Saisie d'une ville </h1>";
	echo"<form action='php19.php' method='post'>";
	
	echo"Code Ville : ";
	echo"<input type='text' name='codeVille'/><br/><br/>";
	
	echo"Nom Ville : </td>";
	echo"<input type='text' name='NomVille'  /><br/><br/>";
	
	echo"Nombre d'Habitant : ";
	echo"<input type='text' name='NbHab'  /><br/><br/>";
	
	echo"Capitale <input type='checkbox' name='capitale' /><br/><br/>";
	
	echo"Sélectionné le pays souhaité <br/><br/><select name='pays' size=5/> <br/>";
	
	while($ligne) {
	echo"<option  value=\"".$ligne["NomPays"]."\">" .$ligne["NomPays"]."</option>";
	$ligne=mysql_fetch_assoc($resultat);
	}

	echo"<input type='submit' value='Valider' />";
	echo"</form>";
	}
	else
	{
	echo "problème à la connexion <br />";
	}
	//deconnexion à la base de données
	mysql_close($connexion);
	?>
	</body>
</html>



<html>
<head>
	<meta http-equiv="Content-type" content="text/html;charset=ISO-8859-1">
	<title>Liste des villes par Pays</title> </head>
	<body>
	
<?php
	//connexion à la base de données
	$connexion = mysql_connect("localhost","root","");

	if ($connexion)
	{ // connexion réussie
	mysql_select_db("Europe",$connexion);
	if(mysql_query("update Ville set CodeVille='".$_POST['codeVille']."',
	NomVille='".$_POST['NomVille']."', NbHab='".$_POST['NbHab']."',
	Capitale='".$_POST['capitale']."' where NomPays ='".$_POST['pays']."';"))
	{
	echo "Mise à jour réussie.";
	}
	else
	{
	echo "Mise à jour échouée.";
	}
	}
	else
	{
	echo "problème à la connexion <br />";
	}
	
	
	//deconnexion à la base de données
	mysql_close($connexion);
	?>
	</body>
</html>
A voir également:

3 réponses

Chupachups23 Messages postés 73 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 9 décembre 2009 18
14 nov. 2008 à 22:19
Bonsoir , après relecture, je n'ai pas forcément la solution mais certaines choses me paraissent bizarre(je code différemment en tout cas).


Dans la deuxième page , on peut voir un "if ($connexion)" , déjà je sais pas ce que tu veux tester ici ( isset pour voir si un champ n'est pas vide). Le second If aussi me parait louche "if(mysql_query("update Ville ...". Je sais si les erreus sont la mais je ne vois que ça.

if (isset ($connexion))
{mysql_select_db("Europe",$connexion);
$result =mysql_query("update Ville set CodeVille=".$_POST['codeVille'].",
	NomVille=".$_POST['NomVille'].", NbHab=".$_POST['NbHab'].",
	Capitale=".$_POST['capitale']." where NomPays =".$_POST['pays']."";
if(issset ($result))
{
echo "Mise à jour réussie.";
}

A tester , sans être sur.

Et aussi , tu devrais créer une page "connexionbdd.php" , ou tu stock les infos pour la connexion , si un jour tu change, tu va devoir modifier toutes tes requêtes sinon.
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
14 nov. 2008 à 22:34
Non, les tests signifient en fait if ( $connexion != false ), mais le != false est implicite. Ça sert simplement à vérifier que la connexion se soit bien passé ou que la requête n'a pas renvoyé d'erreur.

Et le isset ne sert pas exactement à vérifier qu'un champs ne soit pas vide, il sert à vérifier qu'une variable existe et que sa valeur est différente de NULL.

Par contre pas d'idées pour le problème de pierdu17...
0
Chupachups23 Messages postés 73 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 9 décembre 2009 18
14 nov. 2008 à 23:03
Ah merci psychopathe pour ces précisions , c'est vrai que c'est pas pareil mais je pense que l'erreur était dans la requête SQL , ça ne coute rien d'essayer , on sait jamais ...
0
Stef60 Messages postés 251 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 22 avril 2009 41
15 nov. 2008 à 02:21
Bonjour,
fais en sorte d'afficher ta requête après son exécution pour voir si elle est correcte.
0