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 :

Besoin d'un coup de pouce pour mon update


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 80
    Points
    80
    Par défaut Besoin d'un coup de pouce pour mon update
    Voici,

    Je tente de faire un update sur ma table "menu" composée comme ci-dessous et ça ne fonctionne pas.

    menu
    ------
    - id
    - menu
    - titre
    - div
    - endroit
    - ordre
    - statut

    Les données sont récupérées d'un formulaire POST et en ayant fait un echo, je remarque que toutes les données sont correctement envoyées.

    Ma requête update est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $update = "UPDATE menu SET menu = '".$_POST[menu]."', titre = '".$_POST[titre]."', div = '".$_POST[div2]."', endroit = '".$_POST[endroit]."', ordre = '".$_POST[ordre]."', statut = '".$_POST[statut]."'
    	WHERE id = '".$_POST[menuid]."'";
    $query = mysql_query($update);
    Pas de message d'erreur mais aucun changement dans ma DB.

    Si je fait un echo de ma requête update, j'obtiens ceci :

    UPDATE menu SET menu = 'test2', titre = 'Test2', div = 'gauche2', endroit = '1', ordre = '3', statut = '2' WHERE id = '5'
    Ce qui montre que toutes les données sont bien envoyées et que ma requête semble fonctionner correctement ...

    J'ai fait également un insert qui lui fonctionne correctement ! Pour comparaison, voici ma requête insert :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $insert = "INSERT INTO menu VALUES ('', '".$_POST[menu]."', '".$_POST[titre]."', '".$_POST[div]."', '".$_POST[endroit]."', '".$_POST[ordre]."', '".$_POST[statut]."')";
    $query = mysql_query($insert);
    Et voici ce que donne le echo de cette requête :

    INSERT INTO menu VALUES ('', 'test2', 'Test2', 'gauche2', '1', '3', '2')
    A n'y rien comprendre ;-)

    Merci de votre aide !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    Info supplémentaire ...

    Si je fais ceci après ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf ("Lignes modifiées : %d\n", mysql_affected_rows());
    Voici ce que j'obtients :

    Lignes modifiées : -1
    Donc effectivement, ça montre qu'il y a bien une erreur mais pas suffisante pour générer un rapport car si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = mysql_query($update) or exit(mysql_error() . "<br/>$update");
    Ca ne retourne ne rien !

    Donc, je sais plus quoi ;-)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    J'ai remplacé ma requête UPDATE par l'équivalent en REPLACE et là, ça fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $update = "REPLACE INTO menu VALUES ('".$_POST[menuid]."', '".$_POST[menu]."', '".$_POST[titre]."', '".$_POST[div2]."', '".$_POST[endroit]."', '".$_POST[ordre]."', '".$_POST[statut]."')";
    Donc résolu mais je ne mets pas encore ce topic en résolu car j'aimerai tt de mêm savoir ce qui clochait dans ma requête :-)

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Ta requete UPDATE est juste mais tu n'envoies rien :
    remplace $_POST[menu] par $_POST['menu'] (variables entre quotes) + pareil pour autres $_POST['var']

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 80
    Points
    80
    Par défaut
    Mais euh ...

    Pourquoi cela fonctionne sans les simple quote dans la requête REPLACE ?
    De plus, j'ai un autre UPDATE qui fonctionne parfaitement sans mettre ces simple quotes :-)

Discussions similaires

  1. Besoin d'un petit coup de pouce pour mon mémoire
    Par Nicolas_Mktg dans le forum Présentations
    Réponses: 0
    Dernier message: 28/06/2012, 17h56
  2. [Fortran 95] Besoin d'un coup de pouce pour démarrer
    Par R_sponge dans le forum Fortran
    Réponses: 3
    Dernier message: 26/09/2007, 21h47
  3. besoin d'un coup de pouce pour strcmp
    Par echantillon dans le forum C
    Réponses: 17
    Dernier message: 04/01/2007, 20h43
  4. Besoin d'1 coup de pouce pour realiser une importation de BD
    Par gizmorambo dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/08/2005, 14h07

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