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 :

Problème d'insertion de donnée sous forme d'une expression régulière dans un champ de type text [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème d'insertion de donnée sous forme d'une expression régulière dans un champ de type text
    Bonjour tout le monde,


    Je suis nouveau dans ce forum et débutant en php. Je souhaite enregistrer les modifications de la base de données dans une table que j'appelle modifications donc j'ai mis un champ requête qui va contenir la requête à exécuter pour mettre à jour la base de données. Ceci dit, j'ai créé une fonction qui met à jour la table modifications à chaque fois qu'il y a un changement. Voici mon code :

    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
     
          $result = $db_sync->CreateTable($tables_home[$i], $field);
          $db_change->AddRecord("$result"); 
     
           function CreateTable($name, $fields, $fp) {
     
               mysql_select_db($this->database, $this->dbp);
               $primary_keys = array();
               $sql_f = array();
               for ($i = 0; $i < count($fields); $i++) {
                	if ($fields[$i]['key'] == 'PRI') {
                       $primary_keys[] = $fields[$i]['name'];
                    }
                    $sql_f[] = "`{$fields[$i]['name']}` {$fields[$i]['type']} " . ($fields[$i]['null'] ? '' : 'NOT') . ' NULL' . (strlen($fields[$i]['default']) > 0 ? " default '{$fields[$i]['default']}'" : '') . ($fields[$i]['extra'] == 'auto_increment' ? ' auto_increment' : '');
                }
     
               $sql = "CREATE TABLE `{$name}` (" . implode(', ', $sql_f) . (count($primary_keys) > 0 ? ", PRIMARY KEY (`" . implode('`, `', $primary_keys) . "`)" : '') . ')';
               return $sql;       
            }
     
     
     
           function AddRecord($change_set){
     
    	  $sql = "INSERT INTO changes VALUES('','$change_set',CURRENT_TIMESTAMP)";
              return mysql_query($sql, $this->dbp);
           }

    Le problème c'est qu'il n'ajoute aucune donnée sauf quand je remplace $result par une simple chaine de caractère. Aidez-moi s'il vous plait à résoudre ce problème qui me torture depuis 5 jours déjà.

    Bonne journée à tous et merci d'avance pour vos réponses.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    j'apprécie bcp l'opérateur ternaire mais je m'interdis de l'utiliser pour des expression de plus de 8 caractères, en plus aucune indentation....

    ensuite pourquoi faire "$variable" alors que $variable suffit?

    Le problème c'est qu'il n'ajoute aucune donnée
    pourquoi tu nous montres CreateTable() alors que cette fonction méthode n'ajoute pas des données ?

    pourquoi en plus sont-elles appliquées a des objets différents?

    y a t'il des messages d'erreurs, de notification ou d'avertissements?

    quels sont-ils?

    quels sont les codes de retours fournis par l'API mysql_ ?
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    @gene69
    pourquoi tu nous montres CreateTable() alors que cette fonction méthode n'ajoute pas des données ?
    Si si elle existe la fonction, tu vas trop vite

    Sinon il a raison c'est quoi ce "$result" ? sans quotes c mieux

    Edit: moi j'ai horreur de ce ? et :
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    CreateTable existe je l'ai rencontré. Sauf qu'elle n'ajoute pas des données, elle modifie le schéma.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Si si elle existe la fonction, tu vas trop vite
    Je parlais de la fonction en dessous "function AddRecord"

    Edit: pour être plus précis après la fonction "function CreateTable" dans le code proposé
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Nouveau Candidat au Club
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Oui en fait c'est la méthode AddRecord qui ajoute les données sinon même sans quotes ça ne marche pas et je n'ai aucune erreur.

  7. #7
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    juste un truc que tu es pas d'erreur php veux pas dire que tu as pas d'erreur mysql

    teste ce que te revoie tes fonctions:
    true, exécutée pas de ligne renvoyée et d'erreur
    false, erreur à récupérer avec mysql_error()
    une ressource (à tester avec is_resource()) si des lignes sont retournées, pas d'erreur

    dans l'absolu ce qui compte c'est de tester si
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if($db_change->AddRecord("$result")===false)
      echo mysql_error();
    tu utilises 2 classes différentes? y a pas un problème de conception?

    j'espère que les appels sur des méthodes (devant être dans des classes) apparaissant en vrac correspondent juste à un copier-coller pour montrer tes bouts de codes fait un peu dans le désordre...


    sinon c'est normal que ça marche pas...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  8. #8
    Nouveau Candidat au Club
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ouii ouii les méthodes appartiennent à des classes différentes. En fait, le problème était effectivement au niveau des classes, il cherchait pas dans la bonne base mais maintenant ça marche bien. Merci à tous et bonne journée.

  9. #9
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    mets résolu alors
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/12/2011, 23h46
  2. Afficher les données sous forme d'une liste
    Par j-gat dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 28/11/2010, 16h40
  3. Problème d'insertion des données depuis Forms 10g
    Par monthaldo dans le forum Forms
    Réponses: 5
    Dernier message: 15/03/2010, 13h59
  4. Problème de présentation des données sous forme d'un tableau HTML
    Par LaurentDRE dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/08/2008, 22h49
  5. Réponses: 5
    Dernier message: 27/06/2007, 18h08

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