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 :

Les champs sont vides lors d'une mise à jour (update)


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : octobre 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Les champs sont vides lors d'une mise à jour (update)
    Bonjour,

    j'ai un problème vraiment curieux d'execution de requête SQL à partir de mon code PHP pour une opération de mise à jour de données.

    A savoir que ma requête UPDATE en PHP passe à vide les champs de l'enregistrement que je souhaite mettre à jour et ceci alors que le ECHO de ma requête executé dans phpMyAdmin fonctionne !

    c'est à se casser la tête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    $query ="UPDATE opportunites SET proposepar='$proposepar',region='$region', opentrepriseref='$opentrepriseref', titreopFR='$titreopFR', descopFR='$descopFR', titreopESP='$titreopESP',  descopESP='$descopESP' WHERE id=$id";
    structure de ma table:
    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
    -- Structure de la table `opportunites`
    -- 
     
    CREATE TABLE `opportunites` (
      `id` int(11) NOT NULL auto_increment,
      `oppreference` text NOT NULL,
      `datemiseenligne` date NOT NULL default '0000-00-00',
      `proposepar` text NOT NULL,
      `region` text NOT NULL,
      `typeop` text NOT NULL,
      `opentrepriseref` text NOT NULL,
      `titreopFR` text NOT NULL,
      `descopFR` text NOT NULL,
      `titreopESP` text NOT NULL,
      `descopESP` text NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
    Version de MySQL: MySQL 4.1.11-Debian
    PHP Version 5.0.3

    j'ai déjà sousmis ce problème sur ce forum il y a quelques semaines et j'avais eu quelques pistes qui malheuresement se sont révélées être infructueuses.

    si vous en avez une...je suis preneur car complétement "no where"

    Merci

    greg

  2. #2
    Membre averti Avatar de gofono_bass
    Inscrit en
    décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : décembre 2005
    Messages : 383
    Points : 448
    Points
    448
    Par défaut
    t'as mis un or die(mysql_error()) apres ton mysql_query()? il y a une erreur qui s'affiche?
    mais pourquoi tu cours?

  3. #3
    Candidat au Club
    Inscrit en
    octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : octobre 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut non pas d'erreur
    oui j'ai bien mis l'instruction or die et il n'y a pas d'erreur SQL à partir de PHP.....mais mes champs sont vides alors que la requete fonctionne normalement lorsque executer dans phpMyAdmin....

  4. #4
    Membre éclairé
    Inscrit en
    juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : juillet 2003
    Messages : 625
    Points : 662
    Points
    662
    Par défaut
    Bonjour,

    tes variables proviennent d'un formulaire ? Si oui essaye de les definir avec les variables globales :

    $_POST["proposepar"]; au lieu de $proposepar
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  5. #5
    Membre régulier
    Homme Profil pro
    Webmaster
    Inscrit en
    avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : avril 2006
    Messages : 264
    Points : 105
    Points
    105
    Par défaut
    vu que tes attributs sont tous not null il faudrait pas que dans ton SET tous les attributs soient affectées à une valeur ?

  6. #6
    Membre à l'essai
    Inscrit en
    avril 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Il faudrait peut être verifier tes champs par un !empty

  7. #7
    Candidat au Club
    Inscrit en
    octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : octobre 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci pour vos suggestions,

    ma requête est effectivement en sortie d'un formulaire et les variables/atttributs de ma requête SQL sont bien affectées par un $_POST.
    Quand je fais "echo" de celles-ci, pas de problème elles prennent bien les valeurs de mon formulaire

    Citation Envoyé par temperature
    vu que tes attributs sont tous not null il faudrait pas que dans ton SET tous les attributs soient affectées à une valeur ?
    > Selon moi pas nécessairement. mais je demande qu'à être contredit

  8. #8
    Membre éclairé
    Inscrit en
    juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : juillet 2003
    Messages : 625
    Points : 662
    Points
    662
    Par défaut
    quand tu fais un echo de $query tu as quoi ?
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  9. #9
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Essaye comme ça:
    $query ="UPDATE opportunites SET proposepar='".$proposepar."',region='".$region."', opentrepriseref='".$opentrepriseref."', titreopFR='".$titreopFR."', descopFR='".$descopFR."', titreopESP='".$titreopESP."', descopESP='".$descopESP."' WHERE id=$id";

  10. #10
    Candidat au Club
    Inscrit en
    octobre 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : octobre 2002
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci nicoaix,

    la syntaxe que tu m'as donné m'a permis d'avancer:
    - celà fonction sur mon serveur de test en local (easyphp)
    - celà bug (champs passés à vide) sur le serveur en ligne dans certaines conditions.

    Les conditions du bug semblent venir, selon moi, de la présence de ' (guillemet simple) dans un des 4 champs texte de mon formulaire.

    J'applique au $_POST de ces 4 champs de mon formulaire cette méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     htmlentities($_POST["frmOpDescFR"],ENT_QUOTES);
    Au niveau serveurs (easyphp et en ligne), les paramètres magic_quotes_gpc et magic_quotes_runtime sont tous à OFF.

    je ne comprends pas car si je prends la source html du echo de ma requête et je la colle dans MySQL, celà fonctionne.
    De plus celà fonctionne sur EasyPHP....c'est un mistère...

    bonne journée

Discussions similaires

  1. [XL-2010] Suppression d'une ligne dont les cellules sont vides à partir d'une certaine colonne
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/04/2015, 14h54
  2. Réponses: 1
    Dernier message: 12/04/2012, 13h09
  3. Réponses: 6
    Dernier message: 12/12/2007, 20h32
  4. violation de la règle de validation lors d'une mise à jour
    Par courtial dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/03/2006, 16h17
  5. Réponses: 2
    Dernier message: 21/12/2005, 14h08

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