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 :

[SQL] Ajout de données et Mise à jour d'une table


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut [SQL] Ajout de données et Mise à jour d'une table
    Bonjour,
    Je suis sous wampserver avec Mysql5 et php5. Mes scripts d'ajout de données dans la table ne marche pas.Je veux dire par là qu'il n'y a aucune modification (rien ne passe )même pas d'erreur.je vous montre mes codes.
    le script de connexion à la base
    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
     
    <?php
    #define("Nom", "root");
    #define("pass","");
    #define("serveur","localhost");
    #define("base","gestionconferences");
     
     
    $hostname_dbprotect = "localhost";
    $username_dbprotect = "root";
    $password_dbprotect = "";
    $database_dbprotect = "gestionconferences";
     
    $connect=mysql_connect($hostname_dbprotect,$username_dbprotect,$password_dbprotect) or die("Impossible de se connecter a la base");
    if (!$connect){echo "impposible de se connecter à la base: .mysql_error()";}
    $select=mysql_select_db($database_dbprotect) or die("erreur de connexions a la base de donnees");
    if (!$select){echo "impposible de séletionner  la base: .mysql_error()";}
     
    ?>
    la page de modif
    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
     
    <!--Modifier une conférence-->
     
    <html><head> <!--link rel=stylesheet href="conf.css" type="text/css"--></head>
    <table class='A0'>
    <tr><td class='A1'><td class='A2'><font class='A4'></font></tr>
    </table>
    <table class='A0'>
    <tr><td class='A3'></tr>
    </table>
     
    <body>
    <?php
    require("connect1.php");
     
    $IdConf=$_GET['IdConf'];
    	$modifConf=mysql_query("select * from conference where IdConf=$IdConf") or die("Probleme requete select * from conference: " . mysql_error());
    	$selectIdUniv=mysql_query("select * from universite");
    $conf=mysql_fetch_object($modifConf);
    echo"<table  border=0 >";
    echo"<form action='modif_Conf.php'   method=POST>";
    echo"<tr> <td width=15%>Intitule<td><textarea cols=80 rows=4 name='intitule'>$conf->Intitule</textarea></tr><br>";
    echo"<tr> <td >dateSoumission<td><input type='text' name='dateSoumission' value='$conf->DateSoumission'></tr>";
    echo"<tr> <td >dateAcceptation<br><td><input type='text' value='$conf->DateAcceptation' name='dateAcceptation'></tr>";
    echo"<tr> <td >dateFin<td><input type='text' name='dateFin' value='$conf->DateFin'><td></tr>";
    echo"<tr> <td >droitInsc<td><input type='text' name='droitInsc' value='$conf->DroitInsc'></tr>";
    echo"<tr> <td >NbArtMax<td><input type='text' value='$conf->NbArtMax' name='nbArtMax'></tr>";
    echo"<tr> <td >NomUniv<td><select name='IdUniv'>";
    while($selIdUniv=mysql_fetch_object($selectIdUniv)){
    				echo"<option value=$selIdUniv->IdUniv>$selIdUniv->NomUniv</option>";
    }
    			echo" </select></tr>";
     
    echo"</table>";
    echo"<input type='submit' value='Envoyer' name='envoyer'><input type=reset value='Réinitialiser' name='reinitialiser'>";
    echo"<input type='hidden' name=IdConf value ='$IdConf'>";
    echo"</form>";
     
     
    ?>
    </body>
    </html>
    le script de modif
    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
     
    <?php
    require("connect1.php");
     
    $IdConf=$_POST["IdConf"];
    $intitule=$_POST["intitule"];
    $dateSoumission=$_POST["dateSoumission"];
    $dateAcceptation=$_POST["dateAcceptation"];
    $dateFin=$_POST["dateFin"];
    $droitInc=$_POST["droitInsc"];
    $nombreArtMax=$_POST["nombreArtMax"];
    $envoyer=$_POST['envoyer'];
     
    if ($_POST['$envoyer']){
     
    $requete="UPDATE conference";
    $requete.="SET Intitule='$intitule',DateSoumission='$dateSoumission',DateAccepation='$dateAcceptation',SET DateFin='$dateFin',SET DroitInsc ='$droitInsc',SET NbArtMax='$nombreArtMax' "; 
    $requete.="WHERE IdConf=$IdConf";
     
    $modif=mysql_query($requete) or die("Probleme requete : " . mysql_error());
    echo $dateFin;
    echo $dateSoumission;
    echo $dateAcceptation;
     
    echo $droitInsc;
    echo $nombreArtMax;
    }
    ?>
     
     
    <?php echo $intitule;
     
    ?>
    <script language="javascript" type="text/javascript">
    	<!--
    	window.location.replace("espaceModifConf.php");
    	-->
    </script>
    voilà je ne sais pas pourquoi rien ne se passe.
    merci d'avance de vos réponses

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    ton if a une erreur de frappe en fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST['$envoyer']){
    c'est plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST['envoyer']){
    ou
    du coup il ne passe jamais dans le if!

    Penses a mettre un else pour les cas d'erreurs et à utiliser isset() et empty()

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut
    Ah oui, c'est vrai. c'est le risque avec des copier-coller.Merci
    Mais je ne suis pas au bout de mes peines. je suis en train de voir pourquoi cette erreur de syntaxe
    you have an error in your SQL syntaxe, check manuel that correspond to your mysql server version for right syntaxe to use use near '=international conferenc ......' at line 1
    voici le nouveau 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
     
    <?php
    require("connect1.php");
     
    $IdConf=$_POST["IdConf"];
    $intitule=$_POST["intitule"];
    $dateSoumission=$_POST["dateSoumission"];
    $dateAcceptation=$_POST["dateAcceptation"];
    $dateFin=$_POST["dateFin"];
    $droitInc=$_POST["droitInsc"];
    $nombreArtMax=$_POST["nombreArtMax"];
    $envoyer=$_POST['envoyer'];
     
    if (isset($_POST['envoyer'])({
     
    $requete="UPDATE conference";
    $requete.="SET Intitule=$intitule,DateSoumission=$dateSoumission,DateAccepation=$dateAcceptation, DateFin=$dateFin, DroitInsc =$droitInsc,NbArtMax='$nombreArtMax' "; 
    $requete.="WHERE IdConf=$IdConf";
     
    $modif=mysql_query($requete) or die("Probleme requete : " . mysql_error());
     
    }
    ?>
     
     
     
    <script language="javascript" type="text/javascript">
    	<!--
    	window.location.replace("espaceModifConf.php");
    	-->
    </script>

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour
    Sauf erreur de ma part, il faut des quotes autour des valeurs dans une requête update.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete="UPDATE conference ";
    $requete.=" SET Intitule='$intitule', DateSoumission='$dateSoumission', DateAccepation='$dateAcceptation', DateFin='$dateFin', DroitInsc ='$droitInsc', NbArtMax='$nombreArtMax' "; 
    $requete.=" WHERE IdConf=$IdConf"

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut
    j'avais déjà essayé avec les quotes sans succès.ensuite je les ai enlevés, et toujours rien. je viens de les remettre et toujours pareil

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par wonga
    j'avais déjà essayé avec les quotes sans succès.ensuite je les ai enlevés, et toujours rien. je viens de les remettre et toujours pareil
    Redonnes ton code avec les quote, affiche la requete correspondante ainsi que le message d'erreur, on va bien finir par trouver !

  7. #7
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    a premiere vu il manque un espace entre le nom de la table et le 'SET' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete="UPDATE conference";
    $requete.="SET Intitule=$intitule,

  8. #8
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Fais un echo de ta requête pour voir à quoi elle ressemble.
    Tu verras tout de suite l'erreur!

    Mais je pense en effet qu'il s'agit de l'espace susmentionné et des quotes pour les valeurs texte et date

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut
    Merci à tous. effectivement avec un echo de ma requête je vois que le nom de la table"conference" est coller à la fonction "SET". ne sachant pas comment ajouter l'espace apres le nom de la table je pense ecrire la requête en une seule ligne.
    En attendant voici les codes
    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
     
    <!--Modifier une conférence-->
     
    <html><head> <!--link rel=stylesheet href="conf.css" type="text/css"--></head>
    <table class='A0'>
    <tr><td class='A1'><td class='A2'><font class='A4'></font></tr>
    </table>
    <table class='A0'>
    <tr><td class='A3'></tr>
    </table>
     
    <body>
    <?php
    require("connect1.php");
     
    $IdConf=$_GET['IdConf'];
    	$modifConf=mysql_query("select * from conference where IdConf=$IdConf") or die("Probleme requete select * from conference: " . mysql_error());
    	$selectIdUniv=mysql_query("select IdUniv from universite WHERE IdUniv=(select IdUniv from conference where IdConf=$IdConf)") or die("Probleme requete universite: " . mysql_error());
     
     
    $conf=mysql_fetch_object($modifConf);
    echo"<table  border=0 >";
    echo"<form action='modif_Conf.php'   method=POST>";
    echo"<tr> <td width=15%>Intitule<td><textarea cols=80 rows=4 name='intitule'>$conf->Intitule</textarea></tr><br>";
    echo"<tr> <td >dateSoumission<td><input type='text' name='dateSoumission' value='$conf->DateSoumission'></tr>";
    echo"<tr> <td >dateAcceptation<br><td><input type='text' value='$conf->DateAcceptation' name='dateAcceptation'></tr>";
    echo"<tr> <td >dateFin<td><input type='text' name='dateFin' value='$conf->DateFin'><td></tr>";
    echo"<tr> <td >droitInsc<td><input type='text' name='droitInsc' value='$conf->DroitInsc'></tr>";
     
    echo"<tr> <td >NbArtMax<td><input type='text' value='$conf->NbArtMax' name='nbArtMax'></tr>";
    echo"<tr> <td >IdUniv<td><select  name='idUniv'>";
     
    if(empty($selectIdUniv)){echo"resultat de la requete ne contient aucun élément";}
     
    else{
    	$IdUniv=mysql_fetch_object($selectIdUniv);
    		echo"<option value='IdUniv' name='idUniv'>$IdUniv->IdUniv</option>";
    }
    			echo" </select></tr>";
     
    echo"</table>";
    echo"<input type='submit' value='Envoyer' name='envoyer'><input type=reset value='Réinitialiser' name='reinitialiser'>";
    echo"<input type='hidden' name=IdConf value ='$IdConf'>";
    echo"</form>";
     
     
    ?>
    </body>
    </html>
    et le script qui fait l'action de modifier
    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
     
    <?php
    require("connect1.php");
     
    $IdConf=$_POST["IdConf"];
    $intitule=$_POST["intitule"];
    $dateSoumission=$_POST["dateSoumission"];
    $dateAcceptation=$_POST["dateAcceptation"];
    $dateFin=$_POST["dateFin"];
    $droitInc=$_POST["droitInsc"];
    $nombreArtMax=$_POST["nbArtMax"];
    $envoyer=$_POST['envoyer'];
    $IdUniv=$_POST["idUniv"];
     
    if (isset($_POST['envoyer'])){
    #$selectIdUniv=mysql_query("select IdUniv from universite,conference WHERE IdConf=$IdConf");
    if(empty($IdUniv)){echo"le champ IdUniv est vide";}
    else{
    #$IdUniv=mysql_fetch_object($selectIdUniv);
     
    $requete="UPDATE conference" ;
    $requete.="SET Intitule=$intitule, DateSoumission=$dateSoumission, DateAcceptation=$dateAcceptation, DateFin=$dateFin, DroitInsc=$droitInsc, NbArtMax=$nombreArtMax,IdUniv=$IdUniv;"; 
    $requete.="WHERE IdConf=$IdConf";
    echo"$requete";
    $modif=mysql_query($requete) or die("Probleme requete : " . mysql_error());
    }
    }
    ?>
     
     
     
    <script language="javascript" type="text/javascript">
    	<!--
    	window.location.replace("espaceModifConf.php");
    	-->
    </script>

  10. #10
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    c tout simple , au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete="UPDATE conference" ;
    ecris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="UPDATE conference " ;

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut
    ok l'espace est mis. j'ai fait quelques corrections (nom de variables).Il y avait aussi un ppoint virgule en trop à la fin de ma requete. Maintenant il n' ya plus de message d'erreur mais la mise à jour n'est pas effectuée. je ne comprends pas

  12. #12
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Tu as un ; après ton $IdUniv qui ne sert à rien
    Vérifie aussi ce que te ramènes ta requête qui va chercher ton $IdUniv

    Executes ta requête dans phpMyAdmin voir si elle fonctionne correctement déjà

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut
    la requête marche correctement sous phpMyAdmin. j'ai recopié la requête sous phpMyAdmin que j'ai collé dans mon script en donnant des valeurs à mes champs, la mise à jour est effectuée. je pense donc que le problème vient des variables, je vasi revoir de près.

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Points : 20
    Points
    20
    Par défaut
    j'ai reussi enfin.Merci à tous. Il y avait comme je disais un problème avec les champ IdUniv et Idconf. En fait IdUniv est clé étrangère dans la table "conférence" par conséquent je n'avait pas à la mettre à jour dans la table "conference". IdUniv fait référence à la table "université" c'ets donc là qu'il faut mettre à jour le ce champ.
    encore merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/04/2009, 16h32
  2. [MySQL] Mise à jour d'une table de base de données
    Par mannix2 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/08/2008, 18h47
  3. Réponses: 3
    Dernier message: 18/07/2007, 17h20
  4. Réponses: 1
    Dernier message: 27/03/2007, 10h23
  5. Réponses: 7
    Dernier message: 16/01/2007, 15h54

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