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

Langage PHP Discussion :

problème d'insertion avec une format spécifique dans mysql


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut problème d'insertion avec une format spécifique dans mysql
    salut,

    j'ai une application qui enregistre des donnés dans mysql sous cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a:28:{s:6:"idtype";s:3:"CIN";s:6:"mobile";s:8:"55443322";s:6:"idcard";s:8:"22443322";s:9:"firstname";s:8:"abd ";s:8:"lastname";s:7:"sami";s:5:"email";s:16:"sami@yahoo.fr";s:6:"gender";s:2:"M.";s:10:"deliv_lieu";
    s:5:"tunis";s:7:"deliv_d";s:2:"01";s:7:"deliv_m";s:2:"01";s:7:"deliv_y";s:4:"1900";s:11:"birthdate_d";s:2:"01";
    s:11:"birthdate_m";s:2:"01";s:11:"birthdate_y";s:4:"1930";s:7:"address";s:5:"tunis";s:4:"city";s:5:"tunis";
    s:4:"gouv";s:6:"Ariana";s:10:"profession";s:0:"";s:5:"field";
    s:0:"";s:4:"bank";s:0:"";s:6:"agency";s:0:"";s:7:"friends";s:0:"";s:9:"followers";s:0:"";s:8:"blog_url";
    s:0:"";s:7:"website";s:0:"";s:12:"civil_status";s:1:"1";s:8:"nickname";s:0:"";s:7:"zipcode";s:4:"8055";}

    en fait ces donnés sont enregistré dans la table nommé test dans la colonne data


    en fait ces données sont envoyés d'un formulaire d'inscription

    dans la première étape l'utilisateur va remplir le formulaire et après ces données sont envoyés vers un fichier remp.js

    et cette ligne va envoyer ces données vers le fichier remplissage.php

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    jQuery.post(dom + "/remplissage.php?callback=?", {idtype:t,mobile:b,idcard:c,firstname:f,lastname:l,email:e,gender:g,deliv_lieu:deliv_lieu, deliv_d:deliv_d, deliv_m:deliv_m, deliv_y:deliv_y, expir_d:expir_d, expir_m:expir_m,expir_y:expir_y, birthdate_d:birthdate_d, birthdate_m:birthdate_m,birthdate_y:birthdate_y, address:address, city:city, gouv:gouv, profession:profession, field:field, bank_account:bank_account, bank:bank, agency:agency, fb:fb, friends:friends, twitter:twitter, followers:followers, blog:blog, blog_url:blog_url, website:website, civil_status:civil_status, nickname:nickname, zipcode:zipcode}, function(data2) {




    et dans le fichier remplissage.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $P = serialize( $_POST );
     
        $mabase = mysql_connect("localhost", "root", "root");
        if ($mabase) {
            mysql_select_db("mb", $mabase);
        }
     
        // insere toutes les donness provenant de $_POST
        $sql = " INSERT INTO `test` SET
                `formid` = '" . $formid . "',
                `data` = '" . mysql_escape_string($P) . "',
                `creation_date` = '" . date("Y-m-d H:i:s"). "' ";
     
        @mysql_query($sql, $mabase);


    pour le moment je veux développer un script php qui permet d'enregistrer ces données dans la base mysql dans la table test mais cette fois ces données ne sont pas envoyés en mode post mais sont initialisés dans le nouveau script php

    j'ai essayé avec ce 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
    $idcarde="22443322;
    $mobile="55443322";
    $firstname="abd";
    $lastname="sami";
    $Governora="france";
     $adresse="france";
    $jour="11";
    $mois="01";
    $annee="1930";
    $concatenation= $idcarde . $mobile . $firstname . $lastname . $jour . $mois . $annee . $adresse . $Governora  ;
     
    $P = serialize( $concatenation);
     
     
        $mabase = mysql_connect("localhost", "root", "root");
        if ($mabase) {
            mysql_select_db("mb", $mabase);
        }
     
        // insere toutes les donness provenant de $_POST
        $sql = " INSERT INTO `test` SET
                `formid` = '" . $formid . "',
                `data` = '" . mysql_escape_string($P) . "',
                `creation_date` = '" . date("Y-m-d H:i:s"). "' ";
     
        @mysql_query($sql, $mabase);

    mais lors du test de ce script ces données ne sont ps enregistré avec le même format que l’ancien script que leurs donnés sont envoyé en mode post ( je parle du fichier remplissage.php)


    je dois les enregistrer avec cette format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a:28:{s:6:"idtype"..........


    merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    a:28:{s:6:"idtype"..........
    Si tu souhaites ce format, c'est du JSON.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    merci pour votre réponse,

    j'ai essayé avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $concatenation= $idcarde . $mobile . $firstname . $lastname . $jour . $mois . $annee . $adresse . $Governora  ;
     
    $P = serialize(json_encode( $concatenation) );
    mais lors de l'exécution du script je trouve ce genre de résultat dans la base de donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s:68:""0190008821889000MabroukaAyari2304195119 rue 4868 parisinfrance"";
    veut dire que le contenu du $concatenation est enregistré dans un seul bloc en format json

  4. #4
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Si je dis pas de c*nnerie ( mais je m'attend quand même à une belle correction en règle )

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adress ,'Governora',$Governora);
    $P = serialize( $concatenation );
    Quand une réponse vous aide
    Et quand ça marche

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Vouloir sérialiser une chaine JSON, ça n'a pas de sens...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Je le savais !! Bovino ne laisse jamais passer des aberrations de langage
    Quand une réponse vous aide
    Et quand ça marche

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    merci pour votre réponse,

    j'ai essayé avec votre code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = serialize( $concatenation );
    et lors de test du script j'ai cette affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a:18:{i:0;s:7:"idcarde";i:1;s:8:"00688009";i:2;s:6:"mobile";i:3;s:8:"52199200";i:4;s:9:"firstname";i:5;s:6:"dumas";i:6;s:8:"lastname";i:7;s:6:"alen";i:8;s:4:"jour";i:9;s:2:"05";i:10;s:4:"mois";i:11;s:2:"05";i:12;s:5:"annee";i:13;s:4:"1951";i:14;s:6:"adress";i:15;s:54:"11 rue paris";i:16;s:9:"Governora";i:17;s:5:"france";}
    juste le problème est cette affichage contient en plus le :
    je veux juste éliminer ce genre d'affichage


    aussi j'ai essayé avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adress ,'Governora',$Governora);
    $P =  $concatenation ;
    mais lors de test j'ai cette erreur ( en fait c'est de warnnig mais elle n'arrive même pas à enregistrer dans la base mysql )




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_escape_string() expects parameter 1 to be string, array given in /var/www/test.php on line 103 Warning: mysql_escape_string() expects parameter 1 to be string, array given in /var/www/test.php on line 103 Warning: mysql_escape_string() expects parameter 1 to be string, array given in /var/www/test.php on line 103 Warning: mysql_escape_string() expects parameter 1 to be string, array given in /var/www/test.php on line 103
    et j'ai besoin de cette fonction : car par exemple $adress peut contenir des accents ( autrement dis des caractères spéciaux) exemple rue des associations cité mhal

    autre chose à dire , les données sont enregistrés avec cette format

    a:18:{........
    mais mon but qu'il doit avoir cette format :

    a:28:{


    juste indication :la colonne data de la table test a pour Collation latin1_swedish_ci

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si j'ai bien tout compris, tu n'as pas tout compris !

    Ce que tu souhaites, c'est stocker un tableau en BDD et pour cela tu utilises serialize() qui te renvoie une chaine de caractères.

    Ensuite, tu veux récupérer ce tableau pour la renvoyer au navigateur.
    Tu récupères donc la chaine stockée et tu la renvoies.
    Sauf que la chaine sérialisée, JavaScript ne sait pas quoi en faire !
    Tu veux en fait renvoyer un format JSON, pas la représentation d'un tableau PHP.
    Donc pour retrouver ton tableau, tu dois utiliser unserialize puis transformer en JSON avec json_encode() et renvoyer ce résultat...

    Enfin... j'espère qu'avec tout cela, tu auras quand même compris qu'utiliser serialize() n'est pas adapté dans ton cas !
    Stocke juste le résultat de json_encode()...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    moi, je suis pas certain d'avoir tout compris ..

    Bon, par contre ton erreur vient du fait que tu envois un table à ta fonction

    donc, soit tu as besoin d'une concaténation
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $concatenation= 'idcarde: ' .$idcarde . ',mobile:'. $mobile . ',firstname: '. $firstname ....  ;

    soit tu travail toutes tes entrées avant de les mètres dans un tableau
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $adresse=htmlspecialchars($adresse,ENT_QUOTES);

    Mais tu vas quand même pas pouvoir faire un insert dans ta table d'un tableau
    il faut en faire ... ( quelque chose )
    Quand une réponse vous aide
    Et quand ça marche

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    merci pour votre réponse

    j'ai essayé avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      $concatenation1= 'idtype: ' .$idtype . ',mobile:'. $mobile . ',idcard: '. $liste[3].',firstname: ' .$firstnam . ',lastname:'
      . $lastnam . ',email: '. $email .'gender: ' .$gender . ',deliv_lieu:'. $deliLlieu . ',deliv_d: '. $delivD .'deliv_m: '
      .$delivM  . ',deliv_y:'. $delivY . ',birthdate_d: '. $jour .'birthdate_m: ' .$mois . ',birthdate_y:'. $annee . ',address: '
      . $adress .'city: ' .$ville . ',gouv:'. $Governora . ',profession: '. $profession .'field: ' .$field . ',bank:'
      . $bank . ',agency: '. $agency .'friends: ' .$friends . ',followers:'. $followers . ',blog_url: '. $blogUrl .'website: '
      .$website . ',civil_statu:'. $civilstatus . ',nickname: '. $nickname .',zipcode:'. $zipcode ;
    $P = serialize( $concatenation );
    mais je trouve dans la base ce genre de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s:367:"idtype: CIN,mobile:55000100,idcard: 00000097,firstname: ali,lastname:samii,email: gender: M.,deliv_lieu:,deliv_d: deliv_m: ,deliv_y:,birthdate_d: 11birthdate_m: 04,birthdate_y:1951,address: 4 rue 42850: France,gouv:France,profession: field: ,bank:,agency: friends: ,followers:,blog_url: website: ,civil_statu:,nickname: ,zipcode:";


    mais avec l'ancien code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = serialize( $concatenation );
    le résultat est bon sauf l'affichage de i:0, i:1
    donc je dois trouver une maniare pour les eliminer avant de faire l'insert dans la BDD


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a:18:{i:0;s:7:"idcarde";i:1;s:8:"00688009";i:2;s:6:"mobile";i:3;s:8:"52199200";i:4;s:9:"firstname";i:5;s:6:"dumas";i:6;s:8:"lastname";i:7;s:6:"alen";i:8;s:4:"jour";i:9;s:2:"05";i:10;s:4:"mois";i:11;s:2:"05";i:12;s:5:"annee";i:13;s:4:"1951";i:14;s:6:"adress";i:15;s:54:"11 rue paris";i:16;s:9:"Governora";i:17;s:5:"france";}

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Bon, je crois que tant que tu n'auras pas lu et compris à quoi sert et comment fonctionne serialize, il est inutile d'essayer de t'aider.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    @Bovino , moi je vais l'aider
    // ----------------


    Comme t'as pas l'air d'être à une aberration près
    je te propose de passer la solution 2 par ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('~i:[0-9]~', '', $P);
    Quand une réponse vous aide
    Et quand ça marche

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par franco9
    avec l'ancien code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = serialize( $concatenation );
    le résultat est bon sauf l'affichage de i:0, i:1
    donc je dois trouver une maniare pour les eliminer avant de faire l'insert dans la BDD
    Tu n'as toujours rien compris !!!
    J'ai même l'impression que tu ne lis pas les réponses données...
    La sérialisation ne t'intéresse pas puisque ce que tu veux est la représentation JSON !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = json_encode( $concatenation );
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    encore merci,

    j'ai essayé avec votre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = json_encode( $concatenation );
    et les donnés sont enregistrés dans la table data sous cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ["idtype","CIN","mobile","20390112","idcard","00731429","firstname","samia","lastname","Mejri","email","","gender","M.","deliv_lieu","","deliv_d","","deliv_m","","deliv_y","","birthdate_d","08","birthdate_m","10","birthdate_y","1944","address","36 rue Grece ","city","France","gouv","France","profession","","field","","bank","","agency","","friends","","followers","","blog_url","","website","","civil_status","","nickname","","zipcode",""]

    mais j'ai besoin d'enregistrer avec cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    a:28:{s:6:"idtype";s:3:"CIN";s:6:"mobile";s:8:"55000323";s:6:"idcard";s:8:"55400023";s:9:"firstname";s:9:"alen";s:8:"lastname";s:8:"dumas";s:5:"email";s:16:"alen@yahoo.fr";s:6:"gender";s:2:"M.";s:10:"deliv_lieu";s:5:"tunis";s:7:"deliv_d";s:2:"01";s:7:"deliv_m";s:2:"01";s:7:"deliv_y";s:4:"1900";s:11:"birthdate_d";s:2:"01";s:11:"birthdate_m";s:2:"01";s:11:"birthdate_y";s:4:"1930";s:7:"address";s:5:"france";s:4:"city";s:5:"france";s:4:"gouv";s:6:"paris";s:10:"profession";s:0:"";s:5:"field";s:0:"";s:4:"bank";s:0:"";s:6:"agency";s:0:"";s:7:"friends";s:0:"";s:9:"followers";s:0:"";s:8:"blog_url";s:0:"";s:7:"website";s:0:"";s:12:"civil_status";s:1:"1";s:8:"nickname";s:0:"";s:7:"zipcode";s:4:"8055";}
    et quand j'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = serialize( $concatenation );
    $mabase = mysql_connect("localhost", "root", "root");
        if ($mabase) {
            mysql_select_db("mb", $mabase);
        }
     
        // insere toutes les donness provenant de $_POST
        $sql = " INSERT INTO `test` SET
                `formid` = '" . $formid . "',
                `data` = '" . mysql_escape_string($P) . "',
                `creation_date` = '" . date("Y-m-d H:i:s"). "' ";
     
        @mysql_query($sql, $mabase);

    je trouve presque le meme resultat que je suis entrain de la chercher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    a:18:{i:0;s:7:"idcarde";i:1;s:8:"00688009";i:2;s:6:"mobile";i:3;s:8:"52199200";i:4;s:9:"firstname";i:5;s:6:"dumas";i:6;s:8:"lastname";i:7;s:6:"alen";i:8;s:4:"jour";i:9;s:2:"05";i:10;s:4:"mois";i:11;s:2:"05";i:12;s:5:"annee";i:13;s:4:"1951";i:14;s:6:"adress";i:15;s:54:"11 rue paris";i:16;s:9:"Governora";i:17;s:5:"france";}
    juste il y a des données en plus , je parle de i:0 i:1 i:2 i:3 i:4 jusqu’à i:17

    peut etre tu as raison et il faut changer serialize par json_encode() mais comme je dis je ne trouve pas ce qui est entrain de chercher

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    C'est normal que tu n'obtiennes pas la même chose avec le tableau de test qui est à une dimension par rapport à ton tableau du premier message qui est à plusieurs dimensions...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    j'ai essayé avec ce 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
    $concatenation= array('idcarde',$idcarde ,'mobile' ,$mobile ,'firstname',$firstname ,'lastname',$lastname ,'jour',$jour ,'mois',$mois ,'annee',$annee ,'adress',$adresse ,'Governora',$Governora);
    $P = serialize( $concatenation );
    $M=preg_replace('~i:[0-9];~', '', $P);
    $mabase = mysql_connect("localhost", "root", "root");
        if ($mabase) {
            mysql_select_db("mb", $mabase);
        }
     
        // insere toutes les donness provenant de $_POST
        $sql = " INSERT INTO `test` SET
                `formid` = '" . $formid . "',
                `data` = '" . mysql_escape_string($M) . "',
                `creation_date` = '" . date("Y-m-d H:i:s"). "' ";
     
        @mysql_query($sql, $mabase);
    ce code va éliminer i:1; i:2; jusqu'à i:9; mais elle n'arrive pas à éliminer

    par exemple i:10; i:11; i:12


    j'ai essayé avec ce code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $M=preg_replace('~i:~;~', '', $P);
    mais je trouve cette erreur

    Warning: preg_replace(): Unknown modifier ';' in /var/www/test.php on line 152 Warning: preg_replace(): Unknown modifier ';' in /var/www/test.php on line 152
    et elle n'a rien enregistré dans la BDD

  17. #17
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $M=preg_replace('~i:[0-9]+;~', '', $P);
    Quand une réponse vous aide
    Et quand ça marche

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    merci ,

    mais comment changer la valeur de a:18 par a:28

    j'ai essayé avec

    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
     $concatenation= array('idtype',$idtype ,'mobile' ,$mobile ,'idcard',$liste[3] ,'firstname',$firstnam ,'lastname',$lastnam ,'email',
                    $email ,'gender',$gender ,'deliv_lieu',$deliLlieu ,'deliv_d',$delivD ,'deliv_m',$delivM ,'deliv_y',$delivY ,'birthdate_d',
                    $jour ,'birthdate_m',$mois ,'birthdate_y',$annee ,'address',$adress ,'city',$ville ,'gouv',
       $Governora ,'profession',$profession ,'field',
                    $field ,'bank',$bank ,'agency',$agency ,'friends',$friends ,'followers',$followers ,'blog_url',$blogUrl ,
                    'website',$website ,'civil_status',$civilstatus ,'nickname',$nickname ,'zipcode',$zipcode);
     
     
    $P = serialize($concatenation) ;
     
     $M=preg_replace('~i:[0-9]+;~', '', $P);
      $M1=preg_replace('a:[0-9]+~', 'a:28', $M);
     
     
    	$mymdinar = mysql_connect("localhost", "root", "root");
    	if ($mymdinar) {
    		mysql_select_db("mdinardb2", $mymdinar);
    	}
     
    	// insere toutes les donness provenant de $_POST
    	$sql = " INSERT INTO `my_mdinar` SET
    			`formid` = '" . $formidBD . "',
                             `contractid` = '" . $formid . "',
    			`data` = '" . mysql_escape_string($M1) . "',
    			`creation_date` = '" . date("Y-m-d H:i:s"). "' ";
     
    	@mysql_query($sql, $mymdinar);
    mais lors de test j'ai cette erreur :

    Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in /var/www/test.php on line 109 Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in /var/www/test.php on line 109

  19. #19
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Mais tu ne dois pas faire ça ! Ca n'a aucun sens et montre encore une fois que tu n'as pas compris ce que fait serialize() !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  20. #20
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 180
    Points : 73
    Points
    73
    Par défaut
    juste je veux chager a:18 par a:28

    je comprend que tu as dis ( difference entre serialize et json)

    mais juste c'est un besoin urgent que je suis entrain de le faire

    ( en fait ce petit code que je suis entrain de le monter entre dans un autre contexte )

    en fait il ya une application d'inscription en php ( qui inclut des modules avec jquery , j'ai veux pour le moment faire l'enregistrement de 1000 client en utilisant un script php ( les données de ces client se trouve dans un fichier excel)

    dans c'est pour celà j'ai inspirer du code de l'application pour faire mon exemple


    finalement j'ai résolut mon problème avec ce 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
    $P = serialize($concatenation) ;
     
     $M=preg_replace('~i:[0-9]+;~', '', $P);
      $M1=preg_replace('~a:[0-9]+~', 'a:28', $M);
     
     
     
    	$mabase = mysql_connect("localhost", "root", "root");
    	if ($mabase) {
    		mysql_select_db("mb", $mabase);
    	}
     
    	// insere toutes les donness provenant de $_POST
    	$sql = " INSERT INTO `test` SET
    			`formid` = '" . $formidBD . "',
                             `contractid` = '" . $formid . "',
    			`data` = '" . mysql_escape_string($M1) . "',
    			`creation_date` = '" . date("Y-m-d H:i:s"). "' ";
     
    	@mysql_query($sql, $mabase);
    bien sur comme j'ai dis il ya d'autre module qui sont lié avec ce script ( récupération des données du fichier excel ....)

    en fait je suis trompé la valeur 28 c'est les nombres des éléments dans $P

    donc je dois calculer les nombre des éléments et par la suite l'affecté au a

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

Discussions similaires

  1. [2.x] [Doctrine 2] Problème d'insertion avec une relation manytomany
    Par Khalezis dans le forum Symfony
    Réponses: 0
    Dernier message: 14/11/2013, 12h56
  2. [2.x] Problème d'insertion avec une relation ManyToMany
    Par touffifou dans le forum Symfony
    Réponses: 0
    Dernier message: 15/05/2013, 17h39
  3. [AC-2010] Problème d'insertion d'une sous table dans une table
    Par acpsc dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 07/05/2013, 08h56
  4. Problème d'insertion avec une requête sql
    Par dutty_pi dans le forum JDBC
    Réponses: 5
    Dernier message: 14/03/2012, 13h58
  5. Problème d'insertion avec une procédure PLSQL
    Par KuBi4K dans le forum PL/SQL
    Réponses: 5
    Dernier message: 06/03/2012, 09h17

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