Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 20h29   #1
Invité de passage
 
Homme Jérémy Skelland
Responsable marketing opérationnel
Inscription : février 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Jérémy Skelland
Localisation : Espagne

Informations professionnelles :
Activité : Responsable marketing opérationnel
Secteur : Communication - Médias

Informations forums :
Inscription : février 2011
Messages : 6
Points : 0
Points : 0
Par défaut update de données dans ma BDD

Coucou,

J'essaie en vain de pouvoir updater des données dans ma BDD via un formulaire.

voilà le code que j'ai:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?	  
include('conf.php');  
 
$firstname= $_POST['firstname'];  
$lastname= $_POST['lastname'];  
$country= $_POST['country'];  
 
 
if($firstname==" " || $lastname==" " || $country=="")  
    {  
    echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>';  
    echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="profil.php" </SCRIPT>';  
exit;  
    }  
 
$sql = "SELECT firstname FROM Users WHERE firstname='$_POST[firstname]'";  
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
$data = mysql_fetch_array($req);
 
 
if($data['firstname']==$firstname)       
    {  	
    echo '<script language=javascript> alert ("Are you sure ? ");</script>';  
    echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="profil.php" </SCRIPT>';  
exit;       
    }
 
else
{
 
$sql = "SELECT lastname FROM Users WHERE lastname='$_POST[lastname]'";  
$req = mysql_query($sql);
 
$data = mysql_fetch_array($req);
 
if($data['lastname']==$lastname)
    {
    echo '<script language=javascript> alert ("This last name already exists !");</script>';  
	echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="profil.php" </SCRIPT>';  
exit;
    }  
 
else
{
 
$sql = "SELECT country FROM Users WHERE country='$_POST[country]'";  
$req = mysql_query($sql);  
 
$data = mysql_fetch_array($req); 
 
if($data['country']==$country)  
    {	
    echo '<script language=javascript> alert ("hummm !");</script>';  
	echo '<SCRIPT LANGUAGE="JavaScript"> ocument.location.href="profil.php" </SCRIPT>';  
exit;  
 
    }
else
 
$mysql="UPDATE Users SET firstname='$firstname', lastname='$lastname', country='$country' WHERE id='$login";
 
$rs = mysql_query($mysql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nid = mysql_insert_id();
 
echo '  <p>your data has been added to the database, <a href="profil.php">click here</a> to check you profil.</p> ';  
 
} 
 
}
 
?>
Le formulaire est dans un autre fichier et j'appelle celui que je viens de mettre juste au dessus.
J'ai des message d'erreurs et je suis perdu ;(
Code :
$mysql="UPDATE Users SET firstname='$firstname', lastname='$lastname', country='$country' WHERE id='$login";

Autre petit problème j'ai mis une ligne de code pour ne pas avoir le mm nom ou prenom qui existent 2 fois mais en fait je me suis planté et impossible de retirer la bonne ligne de code maintenant, je comprends pas...
JezUK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 15h00   #2
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Il est bizarre ton code...
tu fais ça :
Code :
1
2
3
$firstname= $_POST['firstname'];  
$lastname= $_POST['lastname'];  
$country= $_POST['country'];
Et après tu réutilises tes variables $_POST dans les requêtes
===>>>> GROSSE ERREUR (pb d'injections SQL, tu connais ?)

Fais un echo $mysql de ta requête, à mon avis, ton erreur apparaitra toute seule....
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 15h16   #3
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 777
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 777
Points : 2 357
Points : 2 357
Bonjour,

Vérifie le contenu de $_POST également, peut-être que tes valeurs sont mal passées.
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 16h06   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
mélanger PHP et javascript n'est pas très heureux...

Vérification d'un formulaire :
1/ on fait une PREMIERE vérification (facultative) en javascript AVANT d'envoyer le formulaire (onsubmit ...)
2/ on fait une DEUXIEME vérification (obligatoire) en php (tout php !). Au cas où javascript est désactivé, c'est la dernière "barrière" !

tu peux t'inspirer de cette méthode -> FORMULAIRE ET TRAITEMENT sur la même page
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 12h42   #5
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Citation:
Envoyé par JezUK Voir le message
Le formulaire est dans un autre fichier et j'appelle celui que je viens de mettre juste au dessus.
J'ai des message d'erreurs et je suis perdu ;(
Code :
$mysql="UPDATE Users SET firstname='$firstname', lastname='$lastname', country='$country' WHERE id='$login'";
Je ne sais pas si ça va changer grand chose mais il te manquait une ' avant le " de fin d'update.
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 10h09   #6
Membre du Club
 
Homme
Webmaster
Inscription : septembre 2008
Messages : 113
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : septembre 2008
Messages : 113
Points : 45
Points : 45
salut,

ton code est une usine à gaz quand même.

Plusieurs solutions :

- très simple tu peux trouver ça sur le net, un validator en Jquery facile d'utilisation, dès qu'un champ est oublié directement message d'erreur à côté de ton input ou autre champ de ton formulaire.
- fait un fichier javascript, moins le bazar et surtout tes boucles tu peux faire mieux au niveau de ton code
- je ferrais ceci :

Code :
1
2
 
$mysql="UPDATE Users SET firstname='".$firstname."', lastname='".$lastname."', country='".$country."' WHERE id='".$login."'";
tiens au courant si ça marche
cragoroth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h01.


 
 
 
 
Partenaires

Hébergement Web