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 :

[Conception] Probleme pour mettre ajour ma base de donne


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [Conception] Probleme pour mettre ajour ma base de donne
    Voici mon code



    ca ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql="UPDATE table SET field='toto' WHERE id='1'";
    mais ca ca marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST['f_id'])) $f_id=addslashes($_POST['f_id']);
        else $f_id=addslashes("");
     
    $sql="UPDATE table SET field='toto' WHERE id='$f_id'";
    Aidez-moi!!
    Merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Quelle est l'erreur?

    EDIT: "....'$var'..." ca a pas lair super.
    Essayes plutot "....".$var.".."

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    fais un echo de ta requête pour voir ce qu'elle t'affiche.

  4. #4
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST['f_id']))
         $f_id = $_POST['f_id'];
    else
         $f_id = '';
     
    $sql='UPDATE table SET field=\'toto\' WHERE id='.mysql_real_escape_string($f_id);

  5. #5
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Euh arrête moi si je me trompe mais id est censé être un int dans ta table... non... .. ?

    donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['f_id']))
    {
          $sql = 'UPDATE table SET field=\'toto\' WHERE id='. (int) $_POST['f_id'];
          // traitement de la requete
    }
    else // f_id non soumis ça sert à rien de faire la requete
    
    @ tchaOo°

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    non, id est un id envoyé deèuis un formulaire avec la methode POST.

    il est recupéré (et d'autre donnéé) grace a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isset($_POST['f_id'])) $f_id=addslashes($_POST['f_id']);
        else $f_id=addslashes("");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST['f_id']))
         $f_id = $_POST['f_id'];
    else
         $f_id = "'';
    selon Hervé.

    En fait la conditon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['f_id']))
    n'est pas acceptee.

    En d'autre mot dans la requette SQL ci-dessous, $f_id est égale à ""
    ($nom est une autre avraible recupéré envoyé avec la methode POST, qui fonctionne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql='UPDATE table SET nom='.$nom.' WEHERE id='.$f_id;
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  7. #7
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Je pense que tu confond id et int... id n'est pas un type de variable c'est juste le raccourcis pour identifiant... ton id est un nombre entier c'est donc un int (integer)... pour le reste... .. .

    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
    if(isset($_POST['f_id']))
          $f_id = (int) $_POST['f_id'];
                else
                       $f_id = '';
    
    if(isset($_POST['nom']))
          $nom = $_POST['nom'];
                else
                       $nom = '';
    
    if(!empty($nom) && $f_id !== '')
    {
            $sql = 'UPDATE table SET field=\''.mysql_real_escape_string($nom).'\' WHERE id='.$f_id;
            // traitement de la requete
    }
    else // f_id ou nom non soumis ça sert à rien de faire la requete
    
    @ tchaOo°

    ps : t'es sur que ton champ nom s'appel field ? moi j'aurais plutot vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = 'UPDATE table SET nom=\''.mysql_real_escape_string($nom).'\' WHERE id='.$f_id;
            

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    ben le id de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = 'UPDATE table SET field=\''.mysql_real_escape_string($nom).'\' WHERE id='.$f_id;
    correspond a mon champs id de ma table qui est bien un int
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    oui le champd field ou nom, ne me cause pas de probleme, en effet y a pas de coincidence dans ce que j'ai écrit.

    Par contre mon champs id est réelle et en a bien un qui a pour valeur 1
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  10. #10
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    la dessus on est d'accord mais le champ nom s'appel bien field... .. ?

    @ tchaOo°

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Bon, je vais etre plus précis
    Dans ma table j'ai un field: id, id_owner, text_en,

    voici maintenant mon code : (s'il y pas trop de faute de frappe...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(isset($_POST['f_slogan'])) $f_slogan=$_POST['f_slogan'];
       esle $f_slogan="";
    if(isset($_POST['f_id'])) $f_id=$_POST['f_id'];
       esle $f_id="";
     
    $sql='UPDATE user SET text_en=\''.$f_slogan_en.'\' WHERE id='$f_id;
    mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
    $f_slogan et f_id sont valeur envoyé par le formulaire (method POST). $f_id correspond à la valeur du field id de ma table. Le field id de ma table est unique et autoincrément
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  12. #12
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Ok... donc aucun champ field... tu m'étonne que ça marche pas... c'est quoi que tu veux mettre à jour avec ta variable $nom... .. .

    @ tchaOo°

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Comprend pas pourquoi ce truc ne marche pas, ca dois marché!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(isset($_POST['f_slogan'])) $f_slogan=$_POST['f_slogan'];
       esle $f_slogan="";
    if(isset($_POST['f_id'])) $f_id=$_POST['f_id'];
       esle $f_id="";
     
    $sql='UPDATE user SET text_en=\''.$f_slogan_en.'\' WHERE id='$f_id;
    mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  14. #14
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    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
    if(isset($_POST['f_id']))
          $f_id = (int) $_POST['f_id'];
                else
                       $f_id = '';
    
    if(isset($_POST['f_slogan']))
          $f_slogan = $_POST['f_slogan'];
                else
                       $f_slogan = '';
    
    if(!empty($f_slogan) && $f_id !== '')
    {
            $sql = 'UPDATE user SET text_en=\''.mysql_real_escape_string($f_slogan).'\' WHERE id='.$f_id;
            // traitement de la requete
            mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
    
    }
    else // f_id ou nom non soumis ça sert à rien de faire la requete
    
    @ tchaOo°

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    j'ai aussi essayà ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(isset($_POST['f_slogan'])) $f_slogan=$_POST['f_slogan'];
       esle $f_slogan="";
    if(isset($_POST['f_id'])) $f_id=$_POST['f_id'];
       esle $f_id="";
     
    $sql='UPDATE user SET text_en=\''.$f_slogan_en.'\' WHERE id=\''.$f_id.'\'';
    mysql_query($sql) or die('ERROR SQL '.$sql.'<br>'.mysql_error());
    mais pas de résultat
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  16. #16
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    ouep mais $f_slogan_en n'existe pas dans ton script... essaye le code que je te donne et si ça ne marche pas met... .. .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    exit();
    juste avant la requete et vérifie que les champ en question sont bien là... sinon ta requète s'éxecute mais les modification ne sont pas faites une fois que tu vérifie dans ta table ou tu as le die avec l'affichage de l'erreur qui s'execute... .. ?

    @ tchaOo°

    ps : met error_reporting à E_ALL dans ton php.ini ou error_reporting(E_ALL); au début de ton script le temps de le débuguer

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Bon , j'en ai eu marre, j'ai changer ma methode,

    mon id je le fais pass en GEt avec l'url:
    au lieus de le mettre dans un formulaire .

    Je recupere le formulaire en POST et l'id en GET

    ca marche.

    Mais c'est dommage car j'aurais tous voulu faire a travers le formuaire. Exemple, les text, les nom et mon id stocke dans un "text field" ou "hidden Field". Tout ca envoyé avec le bouton Submit et recuperer dans l'autre page en POST. Bref

    Si vous m'avez compris, car peut pas toujours été clair et si vous avec une meilleur methode, ben je suis à l'écoute
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  18. #18
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Oui mais mon probleme n'est pa savec slogan, mais "f_id", ou "id"....
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  19. #19
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Si ça marche en get je vois pas pourquoi ça marcherait pas en post... fais ce que je t'ais dit dans mon dernier post... .. .

    @ tchaOo°

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/03/2010, 22h29
  2. Probleme pour mettre en ligne un formulaire
    Par sdblepas dans le forum Access
    Réponses: 2
    Dernier message: 04/06/2006, 17h08
  3. Probleme pour Mettre à Zero un StringGrid
    Par La_Bande_A_Zozo dans le forum C++Builder
    Réponses: 3
    Dernier message: 23/05/2006, 10h15
  4. Probleme pour mettre le 0 de fin apres un mot
    Par Asmod_D dans le forum C
    Réponses: 14
    Dernier message: 13/03/2006, 12h30
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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