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 :

Modification avec php


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut Modification avec php
    Bonjour à tous

    Je viens de passer au php, j'ai commencé doucement au départ par l'affichage de données que php allez chercher dans ma base sous phpMyAdmin, ce coup si je veux passer à la modification, je veux en fait que le gérant du site et la possibilité de pouvoir changer son site comme bon lui semble sans faire appel à moi.

    Je vais vous montré les 3étapes de ma modification et l'endroit qui connaît un problème :

    (j'ai prit qu'une seule est unique table comme exemple)

    donc voici la modification1 :

    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
    <html>
      <head>
        <title>modification de donn? en PHP :: partie 1</title>
      </head>
    <body>
     
    <?php
     
    require ("Connect.php");
     
    //connection au serveur:
    $cnx = mysql_connect (SERVEUR, NOM, PASSE);
     
    //séction de la base de données:
    $db  = mysql_select_db(BASE) ;
     
    //requête SQL:
    $sql = "SELECT Texte_moulin 
    FROM moulin 
    WHERE nuMoulin = '2'";
     
    //exécution de la requête SQL:
    $requete = mysql_query( $sql, $cnx ) ;
     
    //affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
         echo("<div align=\"center\">".$result->Texte_moulin." <a href=\"modification2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;
    }
    ?>
    </body>
    </html>
    La modification 2:

    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
    <html>
      <head>
        <title>modification de donn? en PHP :: partie2</title>
      </head>
    <body>
     
    <?php
     
    require ("Connect.php");
     
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "") ;
     
    //séction de la base de données:
    $db  = mysql_select_db(BASE) ;
     
    //récupération de la variable d'URL,
    //qui va nous permettre de savoir quel enregistrement modifier
    $id  = $_GET["idPersonne"] ;
     
    //requête SQL:
    $sql = "SELECT Texte_moulin
            FROM moulin
    	    WHERE id_personne = ".$id ;
     
    //exécution de la requête:
    $requete = mysql_query( $sql, $cnx ) ;
     
    //affichage des données:
    if( $result = mysql_fetch_object( $requete ) )
    {
    ?>
     
    <form name="insertion" action="modification3.php" method="POST">
    <input type="hidden" name="id" value="<?php echo($id) ;?>">
     
    </BR>
    </BR>
    <BR>Texte</BR>
    <input type="text" name="nom" value="<?php echo($result->Texte_moulin) ;?>">
    <td colspan="2"><input type="submit" value="modifier"></td>
     
     
    </form>
    <?php
      }//fin if 
    ?>
    </body>
    </html>
    Et pour finir ma modification3:

    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
    <?php
     
    require ("Connect.php");
     
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "" ) ;
     
    //séction de la base de données:
    $db  = mysql_select_db(BASE) ;
     
    //récupération des valeurs des champs:
    //nom:
      $nom     = $_POST["nom"] ;
     
     
    //récupération de l'identifiant de la personne:
    $id         = $_POST["id"] ;
     
    //création de la requête SQL:
    $sql = "UPDATE personnes
               SET nom = '$nom', 
               WHERE id_personne = '$id' " ;
     
    //exécution de la requête SQL:
    $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
     
    //affichage des r?ltats, pour savoir si la modification a marchée
      if($requete)
      {
        echo("La modification été correctement effectuée ") ;
      }
      else
      {
        echo("La modification à échouée") ;
      }
    ?>
    Voila le message d'erreur que j'obtiens quand je passe a ma modification 2 et je ne comprend pas car ca devré marcher pourtant:

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\site\modification2.php on line 30
    Merci d'avance pour votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    id_personne est une clé étrangère dans ta table moulin ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    Ben en fait c'est juste une variable qui va permettre de stocké une donnée enfin a ce que j'ai compris car je me suis aider d'une aide sur internet qui me disé de faire un truk dans ce genre.

  4. #4
    Membre expérimenté Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Par défaut
    tu dois recuperer la variable idpersonne et l'afficher pour s'assurer puis la mettre dans la requete .

    en fait c'est ou la ligne 30 ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Le problème peut venir de la requête en elle même qui est incorrecte, as tu tenté d'afficher les requêtes et de les exécuter dans phpMyAdmin ?

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    Le problème vient de la ligne 30 soit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $result = mysql_fetch_object( $requete ) )
    la valeur idpersonne ne sert qu'a stocké en fait.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Ce que je demandais personnellement c'est si tu possèdes bien un champ id_personne dans ta table moulin, puisque ce genre d'erreur est fréquemment due à une erreur de syntaxe d'une requête.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    non je ne possède aucun champ id_personne.
    J'ai peut etre mal compris ca signification.
    J'ai garder en fait l'exemple qui m'était proposé.

    Faut-t'il que je change id_personne par un atribut de ma table?

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Oui avec cette requete tu demandes de sélectionner des champs dans la table qui remplissent la condition que l'un d'eux (qui n'existe pas pour ce cas) soit égal à quelque chose.

    Tu ne peux ni sélectionner, ni emettre de condition sur un champ qui ne se trouve pas dans une des tables sélectionnées en SQL.

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    Voila j'ai modifié mon id_personne par nu_moulin(qui existe bien ce coup si).

    j'obtiens donc la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT Texte_moulin
    FROM moulin
    WHERE nu_moulin = ".$id ;
    Mais voila le problème va rester le même car j'ai encore le même message d'erreur venant encore de la ligne 30 :

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\site\modification2.php on line 30

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Si nu_moulin est de type varchar c'est normal il manque des quotes.

    Sinon le mieux pour vérifier si c'est bien la requête qui pose problème c'est de l'afficher, copier/coller sous phpMyAdmin et regarder si erreur il y a.

  12. #12
    Membre expérimenté Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Par défaut
    tu affiche ton variable $id avant de le mettre dans la requete, si tout va bien donc c'est un probleme du requete sinon c'est un probleme de passage de variable d'une page a une autre

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    Oui en plus la requête s'affiche correctement une 1er fois alors je comprend pas ce qu'il se passe.

  14. #14
    Membre expérimenté Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Par défaut

    Citation Envoyé par stan30160
    Oui en plus la requête s'affiche correctement une 1er fois alors je comprend pas ce qu'il se passe.
    j'ai pas compris cette phrase

  15. #15
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    En fait je voulais dire que la 1er requête

    celle du :

    $sql = "SELECT Texte_moulin
    FROM moulin
    WHERE nuMoulin = '2'";

    s'affiche normalement. en fait j'ai rien dit

    J'ai limpression que le problème vient du :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while( $result = mysql_fetch_object( $requete ) )
    {
         echo("<div align=\"center\">".$result->Texte_moulin." <a href=\"modification2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;
    }
    dans la 1er modification.

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Je vois un $result->id_personne qui n'a l'air de sortir de nul part.

    Peut etre une piste pour trouver ?

  17. #17
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    En fait je vais tescpliquer noir sur blanc ce qu'il s'est passer pour que tu compraine que j'ai quelques incoréences dans mon programme.

    Le problème s'est que j'ai fait un copier coller de quelque chose que j'ai vu sur internet et je l'ai adapté a ma base de donnée en changeant la base de données, les tables, les attibuts etc...

    donc il se peut que j'en est oublié parcque a certain moment je ne comprené pas ce dont il était question et cette phrase la je ne la comprend pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while( $result = mysql_fetch_object( $requete ) )
    {
         echo("<div align=\"center\">".$result->Texte_moulin." <a href=\"modification2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;
    }

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    while( $result = mysql_fetch_object( $requete ) )

    Tant qu'on récupère l'enregistrement suivant de la requête que l'on met dans l'objet $result

    echo("<div align=\"center\">".$result->Texte_moulin."

    On affiche dans un div centré le champ "Texte_moulin"

    <a href=\"modification2.php?idPersonne=".$result->id_personne."\">modifier</a><br>\n") ;

    On affiche un lien vers modification2.php qui récupère comme paramètre idPersonne avec pour valeur le champ "id_personne" (qui je crois me rappeler n'existe pas dans ta base)

  19. #19
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    ok

    Alors si je comprend bien je dois aussi changer le id_personne ici par un champ qui existe dans ma base

  20. #20
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    Je viens donc de le faire et j'obtiens éternélement le même message d'erreur...

Discussions similaires

  1. Modification d'une page Html en temps réel avec pHp.
    Par Destiny-06 dans le forum Langage
    Réponses: 5
    Dernier message: 12/06/2014, 15h44
  2. [MySQL] Modification et suppression bdd avec php
    Par stefanelle dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/02/2009, 11h22
  3. [MySQL] modification de mot de passe avec PHP et mysql
    Par Claude Poulin dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/01/2009, 22h59
  4. Modification attributs d'un fichier avec PHP
    Par zetta dans le forum Langage
    Réponses: 1
    Dernier message: 03/07/2006, 11h55
  5. [MySQL] FULLTEXT, modif ft_min_word_len avec PHP
    Par Husqvarna dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/10/2005, 10h06

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