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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 é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 ?

  5. #5
    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.

  6. #6
    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.

  7. #7
    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 ?

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

    pour modif1:

    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
    <html>
      <head>
        <title>modification de données 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->nuMoulin."\">modifier</a><br>\n") ;
    }
    ?>
    </body>
    </html>
    puis pour modif2

    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 texte_moulin = ".$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 voila ensuite pour ma table MOULIN:

    Nom : table moulin.JPG
Affichages : 47
Taille : 156,3 Ko

  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
    Je crois avoir trouvé une piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //requête SQL:
    $sql = "SELECT Texte_moulin
            FROM moulin
    	    WHERE texte_moulin = ".$id ;
    1 - Dans ta première page id correspond à nuMoulin, et dans ta deuxieme requete tu l'utilises comme condition sur le champ texte_moulin.

    2 - Surtout : tu as oublié les quotes alors qu'il s'agit tres certainement d'un champ texte. Tu peux utiliser l'opérateur = avec du texte mais tu dois utiliser des quotes : where texte_moulin = 'ton_texte'

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Par défaut
    Hello,

    Je suis sceptique pour la piste du shéma de la base de données ne correspondant pas avec la requête.

    Le message d'erreur indique simplement que '$requete' n'est pas une ressource exploitable par la fonction 'mysql_fetch_object'. Donc $requete est très certainement un booléen à FAUX, indiquant que l'opération qui l'a affecté a échoué

    En remontant le source, je vois le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      $requete = mysql_query( $sql, $cnx );
    Or dans ma doc PHP, j'ai ceci pour 'mysql_query':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      resource mysql_query ( string query [, resource link_identifier])
    Pour ma part, le champ 'link_identifier' est optionnel et est positionné par la fonction 'mysql_select_db'. Et la variable '$cnx' n'a (à mon sens) absolument rien à voir avec une ressource de type 'link_identifier'.

    Moralité: vire le '$cnx' de ton mysql_query et retente. Ton message d'erreur disparaitra très certainement.

    Prendre des scripts sur le net pour démarrer une page c'est bien, mais arme toi aussi d'une doc PHP, ça t'aidera encore plus

    Sur le site officiel de PHP, il y'a une doc gratuite du style .chm qui te sortiras plus d'une fois d'un mauvais pas

    Et dis moi si l'erreur vient de là ou non

    PluX59

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Par défaut
    Désolé je me suis absenté hier.

    Je vais faire ce que vous m'avez dit, je vous dirais cette aprem si ca a bien marché. merci pour votre aide précieuse.

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


    Je viens d'essayer vos solutions que vous m'avez proposé mais aucune n'a réellement marché...

    1.
    1 - Dans ta première page id correspond à nuMoulin, et dans ta deuxieme requete tu l'utilises comme condition sur le champ texte_moulin.
    1. J'ai donc changer et mit texte_moulin dans les 2 mais cela n'a eu aucun effet, (j'ai aussi essayer NuMoulin dans les 2).J'obtiens le même message d'erreur.

    2.
    2 - Surtout : tu as oublié les quotes alors qu'il s'agit tres certainement d'un champ texte. Tu peux utiliser l'opérateur = avec du texte mais tu dois utiliser des quotes : where texte_moulin = 'ton_texte'
    2. Lorsque je fais cela j'ai une erreur sur ma requête.

    3.
    Moralité: vire le '$cnx' de ton mysql_query et retente. Ton message d'erreur disparaitra très certainement.
    3. aucun effet malheuresement j'obtiens toujours le même message d'erreur...

    Merci quand même... est ce que je devrais changer ma facon de modifier et en trouver une autre sur le net?

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