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

Langage PHP Discussion :

probléme pour modifier base access [PHP 5.4]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Par défaut probléme pour modifier base access
    Bonjour,

    Je débute en PHP et je suis en train de suivre les tuto pas à pas pour la gestion d'une base de donnée access.

    J'ai passé "non pas sans mal" la procédure de connexion puis celle de la lecture et de l'écriture, mais maintenant je bloque sur la procédure de modification d'une table.

    Un peu d'aide me ferai du biens.

    Dans le tuto voici la commande sur laquelle je bloque:

    je ne vois pas comment la modification peut avoir lieu si on ne lui donne pas les élément pour faire la modification, enfin je patauge.

    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
     
    <?php
      //modification3.php
     
      //connection au serveur
      $cnx = odbc_connect( "basetest", "MAITRE", "toto" ) or die ("Impossible de se connecter à la bas de donnée") ;
     
      //récupération des valeurs des champs:
      //nom:
      $nom     = $_POST["nom"] ;
      //prenom:
      $prenom = $_POST["prenom"] ;
      //adresse:
     
     
      //récupération de l'identifiant de la personne:
      $id         = $_POST["id"] ;
     echo $nom;
      //création de la requête SQL:
      $sql = "UPDATE personnes SET nom = '$nom', prenom = '$prenom', WHERE id_personne = $id " ;
     
      //exécution de la requête SQL:
      $requete = odbc_do($cnx, $sql) or die( odbc_error() ) ;
     
      //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
        echo("La modification à été correctement effectuée") ;
      else
        echo("La modification à échouée") ;
    ?>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par laurentbatch Voir le message
    ...je ne vois pas comment la modification peut avoir lieu si on ne lui donne pas les élément pour faire la modification, ...
    Les données sont bien là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE personnes SET nom = '$nom', prenom = '$prenom', WHERE id_personne = $id " ;
    Sinon :
    - as-tu vérifier si la modif est prise en compte dans la BdD ?
    - as-tu un message d'erreur ? (lequel ?)

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Par défaut
    J'essaye une commande plus simple et la j'ai le message d'erreur "ODBC 07001"

    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
     
     
    // on se connecte à notre base
    $cnx = odbc_connect ("basetest", "MAITRE", "toto") or die ("Impossible de se connecter à la bas de donnée") ;
     
     
    // lancement de la requête pour effacer Tibo
    $sql ='DELETE from personnes WHERE nom="rolo"';  
     
    // on exécute la requête et on affiche un message au cas où la requête ne se passait pas bien (or die)
    $requete = odbc_do($cnx, $sql) or die('Erreur SQL !'.$sql.'<br />'.odbc_error());  
     
     
     
    // on ferme la connexion à la base
    odbc_close();  
    ?>

  4. #4
    Invité
    Invité(e)
    Par défaut
    1/ au lieu d' odbc_do(), utilise odbc_exec()

    2/ Quand tu as un message d'erreur, merci de le montrer COMPLET.
    ODBC Error Code = 07001 (Wrong number of parameters)
    Comprendre un message d'erreur est important.

    3/ Teste en effet avec des requêtes simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO personnes (nom, prenom) VALUES ('DURINE', 'ANNA-LYSE') " ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE personnes SET nom = 'AIRVIT-MONSLIP', prenom = 'JEAN-PHILIPPE', WHERE id_personne = '1' " ;
    Dernière modification par rawsrc ; 17/08/2013 à 10h13. Motif: Balises [quote][/quote] pour les messages d'erreur

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Par défaut
    merci de ton aide , je viens de trouver.

    voici la commande corrigée:

    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
     
     
    // on se connecte à notre base
    $cnx = odbc_connect ("basetest", "MAITRE", "toto") or die ("Impossible de se connecter à la bas de donnée") ;
     
     
    // lancement de la requête pour effacer Tibo
    $sql ="DELETE from personnes WHERE nom='laurent'";  
     
    // on exécute la requête et on affiche un message au cas où la requête ne se passait pas bien (or die)
    $requete = odbc_do($cnx, $sql) or die('Erreur SQL !'.$sql.'<br />'.odbc_error());  
     
     
     
    // on ferme la connexion à la base
    odbc_close();  
    ?>
    mais je ne parviens toujours pas à faire une modification des la table.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 86
    Par défaut
    Voici le message d'erreur avec le code suivant:

    ODBC Error Code = 37000 (Syntax error or access violation)
    Il semblerai que la page modification2.php ne reçoive pas l'ID de la première page !!!
    Si je modifie l'ID manuellement ca fonctionne.

    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
     
    <html>
      <head>
        <title>modification de données en PHP :: partie 1</title>
      </head>
    <body>
      <?php
        //connection au serveur:
        $cnx = odbc_connect( "basetest", "MAITRE", "toto" ) or die ("Impossible de se connecter à la bas de donnée") ;
     
        //requête SQL:
        $sql = "SELECT * FROM personnes ORDER BY nom " ;
     
        //exécution de la requête:
        $requete = odbc_do($cnx, $sql) ;
     
        //affichage des données:
        while( $result = odbc_fetch_object( $requete ) )
        {
           echo("<div align=\"center\">".$result->nom." ".$result->prenom." <a href=\"modification2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;
        }
      ?>
    </body>
    </html>
    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
     
    <?php
      //modification2.php
     
      //connection au serveur
      $cnx = odbc_connect( "basetest", "MAITRE", "toto" ) or die ("Impossible de se connecter à la bas de donnée") ;
     
      //récupération des valeurs des champs:
      //nom:
      $nom     = $_POST["nom"] ;
      //prenom:
      $prenom = $_POST["prenom"] ;
      //adresse:
     
     
      //récupération de l'identifiant de la personne:
      $id         = $_POST["id"] ;
     echo $nom;
      //création de la requête SQL:
      $sql = "UPDATE personnes SET nom = '$nom', prenom = '$prenom', WHERE id_personne = $id " ;
     
      //exécution de la requête SQL:
      $requete = odbc_do($cnx, $sql) or die( odbc_error() ) ;
     
      //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
        echo("La modification à été correctement effectuée") ;
      else
        echo("La modification à échouée") ;
    ?>

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

Discussions similaires

  1. [AC-2010] Problèmes pour modifier un modèle Access
    Par tytyxam dans le forum IHM
    Réponses: 0
    Dernier message: 20/08/2013, 11h55
  2. Réponses: 0
    Dernier message: 17/02/2012, 22h57
  3. [ACCESS 2000] Problème pour modifier un champ d'une table
    Par DeFCrew dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/08/2008, 14h25
  4. Problème de connexion base Access
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 3
    Dernier message: 21/02/2006, 16h06
  5. Réponses: 4
    Dernier message: 19/01/2006, 14h35

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