mise a jour de BD SQL en php avec "update" - PHP - Programmation
Marsh Posté le 21-01-2009 à 14:18:38
eldran64 a écrit : Bonjour, |
id_adresse==, ca peut venir de là ?
Que dit le or die(mysql_error())
Tes variables de sessions ne méritent-t-elles pas des quotes entre les crochets ? => ex : $_SESSION['var']
Moi perso j'aime pas faire les requêtes en utilisant des simplequotes.
Et je préfère stocker mes requêtes dans une variable, pour pouvoir la contrôler quand il y a des soucis.
Alors voilà ce que ca donnerai :
Code :
|
Une fois l'application déboguée, oublie pas d'enlever le or die();
En espérant t'avoir aidé.
Marsh Posté le 21-01-2009 à 14:33:51
Merci pour ton aide mais malheureusement mon navigateur me sort joyeusement:
Warning: Wrong parameter count for mysql_query() in C:\wamp\www\site_(projet)\Formulaire.php on line 209
Ce qui équivaut à ta dernière ligne.
Marsh Posté le 21-01-2009 à 14:38:02
eldran64 a écrit : Merci pour ton aide mais malheureusement mon navigateur me sort joyeusement: |
mysql_query($query)or die('blabla...');
J'ai oublié d'le mettre
Marsh Posté le 21-01-2009 à 14:43:25
jocastt a écrit : |
Je viens de mettre le code suivant:
$query = "UPDATE personne
SET Id_adresse='" . addslashes($_SESSION['Id_adresse']) . "',
N°_Portable='" . addslashes($_SESSION['num_port']). "',
N°_Telephone='" . addslashes($_SESSION['num_fixe']). "',
Email='" . addslashes($_SESSION['email']). "',
Date_de_naissance='" . addslashes($_SESSION['datedenaissance']). "'
WHERE Id_personne='" .$_SESSION['idpersonne']. "'";
mysql_query($query)or die('blabla...');
et le navigateur me dit blabla.
Donc je peux en déduire que ma requête est fausse?
Marsh Posté le 21-01-2009 à 14:46:23
eldran64 a écrit : |
Certes.
remplace ta ligne mysql_query() par
Code :
|
Ca va afficher ta requête, copie/colle la ici, on pourra voir le problème.
Marsh Posté le 21-01-2009 à 14:49:47
Et bien voilà la réponse du navigateur:
Erreur SQL.
Requête : UPDATE personne SET Id_adresse='2', N°_Portable='0612345678', N°_Telephone='0000000000', Email='pierre.dupont@hotmail.fr', Date_de_naissance='1985-11-26' WHERE Id_personne='2'
et voici ma base de donnée:
Id_personne Id_adresse Nom Prenom N°_Portable N°_Telephone Email Date_de_naissance Login Mot_de_passe
2 2 dupont pierre 0612345678 0212345678 pierre.dupont@hotmail.fr 1985-11-26 pierre dupont
Je vois pas d'où ça pourrait venir
Marsh Posté le 21-01-2009 à 14:57:04
eldran64 a écrit : Et bien voilà la réponse du navigateur: |
La requête me semble bonne,
Vérifie si tes champs s'appellent bien de la meme facon que dans ta requête.
on peut se poser la question notamment pour les champs qui commencent par N°, choisi plutôt des noms de champs sans caracteres spéciaux, tout en minuscule. par exemple : num_tel, email, num_port, id_adresse, id_perssonne, date_de_naissance...
Pour obtenir l'erreur de mysql. remplace:
mysql_query($query)or die('Erreur SQL.<br />Requête : '.$query);
par :
mysql_query($query)or die(mysql_error());
Marsh Posté le 21-01-2009 à 14:59:41
Mon navigateur vient de me dire:
No database selected
Requête :
UPDATE personne SET Id_adresse='2', N°_Portable='0612345678', N°_Telephone='0000000000', Email='pierre.dupont@hotmail.fr', Date_de_naissance='1985-11-26' WHERE Id_personne='2'
Base de donnée:
Id_personne Id_adresse Nom Prenom N°_Portable N°_Telephone Email Date_de_naissance Login Mot_de_passe
2 2 dupont pierre 0612345678 0212345678 pierre.dupont@hotmail.fr 1985-11-26 pierre dupont
pourtant je sélectionne bien ma base quand je fais "UPDATE personne etc..."
Sinon pour les caractères spéciaux je ne pense pas que cela vienne de là car je crée des entrées dans ma table sans problème...
Je sèche totalement....
Marsh Posté le 21-01-2009 à 15:27:38
eldran64 a écrit : Mon navigateur vient de me dire: |
Nodatabase selected ca veut dire qu'il ne trouve pas la base.
il faut que tu vérifies tes lignes au niveau de ces lignes là:
mysql_connect("localhost", "root", "" ); // Connexion à MySQL
mysql_select_db("projet" ); // Sélection de la base projet
Attention de ne pas confondre base de données et table. la table, c'est celle que tu définis dans ta requête. (update TABLE set xx='yy');
(tu as d'ailleurs surement plusieurs tables dans la même base).
Vérifie donc que ta base se nomme bien projet, et que tes identifiants de connexion et ton serveur son corrects.
Marsh Posté le 21-01-2009 à 15:31:32
Tu as raison j'avais bien oublié de connecter correctement ma base.
Mais maintenant j'obtiens encore autre chose!
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '°_Portable='0612345678', N°_Telephone='0000000000', Email='pierre.' at line 3
Marsh Posté le 21-01-2009 à 15:43:44
° est un caractère spécial et les identifiants n'ont pas le droit de contenir des caractères spéciaux sans être entre guillemets (uniquement les guillemets inversé, ceux qui vont d'en haut à gauche vers en bas à droite, avec les réglages par défauts).
Je te conseille de lire cette page là pour en savoir plus:
http://dev.mysql.com/doc/refman/5. [...] names.html
En gros, met des ' ` ' autour des noms de colonnes ou corrige les pour des noms plus simple à utiliser.
Marsh Posté le 21-01-2009 à 15:48:00
J'ai mis "`" là où tu l'avais dit et....
ça marche!
Bravo et merci à toi!!!!!
C'était super sympas! grâce à toi TOUT mon site fonctionne du tonnerre maintenant!!
Un grand MERCI!!!
Marsh Posté le 21-01-2009 à 13:42:09
Bonjour,
Mon code ci-dessous me joue des tours: il s'exécute mais ne met pas jour ma base de donnée
Je suis à peu près sûr que c'est une erreur de syntaxe, mais je ne la trouve pas.
Pourriez-vous m'aider s'il vous plait?
mysql_connect("localhost", "root", "" ); // Connexion à MySQL
mysql_select_db("projet" ); // Sélection de la base projet
mysql_query('UPDATE "personne" SET Id_adresse=="' . addslashes($_SESSION[Id_adresse]) . '",
N°_Portable="' . addslashes($_SESSION[num_port]). '",
N°_Telephone="' . addslashes($_SESSION[num_fixe]). '",
Email="' . addslashes($_SESSION[email]). '",
Date_de_naissance="' . addslashes($_SESSION[datedenaissance]). '"
WHERE Id_personne="' .$_SESSION[idpersonne]. '"');
mysql_close(); // Déconnexion de MySQL*/