IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème avec update [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par défaut problème avec update
    bonjour,
    j'ai commencé un écrire un programme pour créer une page web qui demande à l'utilisateur d'entrer son nom et prénom et date de naissance et lui affiche son identifiant et son adresse mail tout en enregistrant ces données sur la base de donnée dans mysql. voilà le bout de code qui me crée le problème (et plus précisemment dans "update") :

    if ($donnees = mysql_fetch_array($donnee) )

    echo 'votre identifiant est '.$donnees['id'].' et votre adresse mail est:
    '.$donnees['nom'].'_'.$donnees['prenom'].'_'.$donnees['id'].'@election.com<br />';

    $request2 = "UPDATE votant SET @email='.$donnees['nom'].'_'.$donnees['prenom'].'_'.$donnees['id'].'@election.com', validation=1 WHERE id='.$donnees['id'].'";
    $result1 = mysql_query("$request2");

    merci de me montrer où se trouve l'erreur !
    ps: le code marchait parfaitement avant que je n'ajoute le "update"!!!

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Tu es sur d'avoir une colonne @email ? A mon avis il y a aussi une confusion entre les " et les '.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par défaut j'ai tout essayé...
    merci de m'avoir répondu.
    en fait oui, il y a bien une colonne @email dans ma table...
    concernant les " ', j ai toujours ce problème... j'ai donc essayé bêtement toutes les possibilités ...
    est ce que tu peux m'en dire plus sur l'erreur ?
    merci d'avance

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $request2 = "UPDATE votant SET @email='".$donnees['nom']."_".$donnees['prenom']."_".$donnees['id']."@election.com', validation=1 WHERE id=" . $donnees['id'];
    $result1 = mysql_query($request2);
    meme mieux : plutot que de recomposer deux fois ton email :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $email= $donnees['nom'].'_'.$donnees['prenom'].'_'.$donnees['id'].'@election.com';
     
    echo 'votre identifiant est '.$donnees['id'].' et votre adresse mail est : ' . $email.'<br />';
     
    $request2 = "UPDATE votant SET @email='".$email ."', validation=1 WHERE id=".$donnees['id'];
    $result1 = mysql_query($request2);
    sinon tu n'as pas besoin de mettre guillemets autour d'une variable ($request2 dans ton cas) ni autour de la valeur d'un champ numerique dans une requete SQL (typiquement ton id)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par défaut
    merci d'avoir répondu !
    en fait ça n'affiche plus d'erreur mais quand je vérifie sur mysql je trouve que update n'a rien ajouté dessus...
    donc tjrs problème... voici tout le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
     
    $nom=$_POST['nom']; 
    $pre=$_POST['pre']; 
    $mois=$_POST['mois'];
    $jour=$_POST['jour'];
    $annee=$_POST['annee'];
     
    if(!@mysql_connect('localhost','root','')) 
    	echo"Erreur de connection";
    if(!@mysql_select_db("test0"))
    {
    	echo"Erreur ds la Base";
    	exit;
    }
    $request = "insert into votant(nom, prenom, mois, jour, annee) values ('$nom', '$pre', '$mois', '$jour', '$annee')";
    $result = mysql_query("$request");
     
    if (!$result) 
    {	
    	echo '<SCRIPT  TYPE="text/javascript"><!-- 
    	alert("Erreur de requette .'.mysql_error().' ");		
    		window.location.replace("index.php");
    		--></script>';
    	exit;
    }
     
     
    else
    {
    	$request1 = "select * from votant where nom='$nom' AND prenom='$pre'";
    	$donnee = mysql_query("$request1");
    	if (!$donnee) 
    	{	
    		echo '<SCRIPT  TYPE="text/javascript"><!-- 
    			alert("Erreur de requette .'.mysql_error().' ");		
    			window.location.replace("index.php");
    			--></script>';
    		exit;
    	}
    	else
    	{
    		if ($donnees = mysql_fetch_array($donnee) )
     
    		{	echo 'votre identifiant est '.$donnees['id'].' et votre adresse mail est: '.$donnees['nom'].'_'.$donnees['prenom'].'_'.$donnees['id'].'@election.com<br />';
     
    			//$request2 = "UPDATE votant SET @email='$donnees['nom']_$donnees['prenom']_$donnees['id']@election.com', validation=1 WHERE id=$donnees['id']";
    			//$result1 = mysql_query("$request2");
    			$request2 = "UPDATE votant SET @email='".$donnees['nom']."_".$donnees['prenom']."_".$donnees['id']."@election.com', validation=1 WHERE id=" . $donnees['id'];
    			$result1 = mysql_query($request2);
    		}
    		else 
    			echo 'Une erreur est survenue veuillez refaire votre inscription !';
     
    	}
     
    }
    mysql_close();
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    affiche ta requete avant de l'executer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par défaut
    comment cela?
    je n'ai pas très bien compris ...
    merci de préciser.

  8. #8
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Fais un echo de ta variable $request2 pour voir ce qu'il y a juste avant l'exécution du update.

  9. #9
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnee = mysql_query("$request1");
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $donnee = mysql_query($request1);
    Car $request1 est déjà une chaine

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Par défaut
    merci à tous pour vos réponses. en fait j'ai fait quelques changement sur le code ainsi que ma table (je devait mettre des valeurs par défault à @email et validation dès le début...). ensuite je n devait pas utiliser le caractère '@' dans une requète sql... ceci côté database !
    côté code php : j ai ajouté une fonction qui donne la dernière clé primaire enregistré, j'ai aussi utilisé la concaténation pour enregistrer la valeur de @email dans le une variable...
    je vous donne ci-dessous le code résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
     
    $nom=$_POST['nom']; 
    $pre=$_POST['pre']; 
    $mois=$_POST['mois'];
    $jour=$_POST['jour'];
    $annee=$_POST['annee'];
     
    if(!@mysql_connect('localhost','root','')) 
    	echo"Erreur de connection";
    if(!@mysql_select_db("test0"))
    {
    	echo"Erreur ds la Base";
    	exit;
    }
    $request = "insert into votant (nom, prenom, mois, jour, annee) values ('$nom', '$pre', '$mois', '$jour', '$annee')";
    $result = mysql_query($request);
     
    if (!$result) {	
    	echo '<SCRIPT  TYPE="text/javascript"><!-- 
    	alert("Erreur de requette .'.mysql_error().' ");		
    		window.location.replace("index.php");
    		--></script>';
    	exit;
    }
     
     
    else{
    	$last_id = mysql_insert_id();
    	$email = implode('_',array($nom,$pre,$last_id));
    	$email .=  '@election.com';
     
     
    	echo "Votre identifiant est $last_id et votre adresse mail est : $email <br />";
    	$request2 = "UPDATE votant SET email='$email', validation=1 WHERE id = $last_id ";
    	$result1 = mysql_query($request2);
     
    }
     
     
    mysql_close();
     
     
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access2003] Problème avec UPDATE
    Par PhRey dans le forum Langage SQL
    Réponses: 12
    Dernier message: 15/01/2007, 15h22
  2. Problème avec "update" du code ASP
    Par ocean_prince11 dans le forum ASP
    Réponses: 14
    Dernier message: 24/11/2006, 18h56
  3. problème avec update dans h:datatable
    Par rarrou dans le forum JSF
    Réponses: 1
    Dernier message: 03/11/2006, 15h22
  4. problème avec update
    Par chingo dans le forum Requêtes
    Réponses: 7
    Dernier message: 14/10/2006, 23h16
  5. [MySQL] Problème avec UPDATE
    Par oim dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 22/04/2006, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo