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

Windev Mobile Discussion :

Comment faire pour modifier les données Mysql à partir de Windev Mobile


Sujet :

Windev Mobile

  1. #1
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut Comment faire pour modifier les données Mysql à partir de Windev Mobile
    Bonjour à toutes et à tous,
    Je souhaiterai ajouter des enregistrements dans une base Mysql à partir de Windev Mobile 21. Je parviens déjà à faire une liste de cette base en passant par JSON et PhP via un webservice.
    Je pensais pouvoir récupérer facilement mes données envoyées par Windev Mobile mais je rencontre un problème (rien ne s'ajoute dans la base) :
    Voici le code Windev Mobile

    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
    Mareq est une restRequête
    Reponse est une restRéponse
    Nouveauprod est une chaîne
    Mareq.URL="http://localhost/site_json/ajout.php"
    Mareq.Méthode=httpPost
    Nouveauprod=[
    "Description":testrest,
    "Stock":50
    ]
    Mareq.Contenu=ChaîneVersUTF8(Nouveauprod)
    Reponse=RESTEnvoie(Mareq)
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errComplet))
     
    FIN
    HTML1="http://localhost/site_json/ajout.php"
    Par contre de l'autre côté, mise à part la requête INSERT en sql je n'ai aucune idée de la manière dont je dois récupérer les données afin d'effectuer l'insertion (traitement json vers Php).

    Merci par avance si vous pouvez me donner un coup de main.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Il faut ajouter des logs du côté du WebService. Le ErreurDetectée ici ne vérifiera que l'appel du WebService, et non la bonne exécution de la méthode.
    Ou alors il faut ajouter un rapport dans ce qui est renvoyé par le Webservice (le réponse dans le code).
    Sans ça, impossible de savoir ce qui ne va pas (surtout qu'on n'a aucune idée du code du WebSerice utilisé ici).

    Tatayo.

  3. #3
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Merci pour votre réponse,

    Mais avant de connaître les éventuelles erreurs, je cherche une méthode afin de construire ma page PhP permettant la récupération des variables, car ) part l'exécution de la requête, ma page PhP est quasiment vide. En fait je ne sais pas comment transformer la chaine émise en json envoyée par l'application windev et en extraire les variables qui me serviront dans la requête. J'ai cherché mais je n'ai rien trouvé jusqu'à présent.
    Merci encore de votre aide.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Tu devrais voir du coté de:
    file_get_contents('php//input')

    Apres en php, on transforme avec json_decode().

  5. #5
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Ok je note file_get_contents('php//input') mais je ne suis pas certain de la compatibilité avec Windev Mobile
    Et je regarde pour json_decode().
    Merci Beeze,
    Je vais potasser cela et je reviendrai vous faire part du résultat.

  6. #6
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    En faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_decode($Nouveauprod);
    j'obtiens une erreur de type variable indéfinie. Je ne parviens pas à créer une chaîne en JSON comprehensible pour être décoder par PhP. Quelqu'un aurait la syntaxe car moi j'ai fait cela pour envoyer les données en JSON
    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
    Mareq est une restRequête
    Reponse est une restRéponse
    Nouveauprod est une chaîne
    Mareq.URL="http://localhost/site_json/affiche.php"
    Mareq.Méthode=httpPost
    Nouveauprod=[
    "Description":testrest,
    "Stock":50
    ]
    Mareq.Contenu=ChaîneVersUTF8(Nouveauprod)
    Reponse=RESTEnvoie(Mareq)
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errComplet))
     
    FIN
    HTML1="http://localhost/site_json/affiche.php"

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Bon ce n'est pas du windev, là si tu as une erreur il faut que tu regarde les logs et surtout que tu affiches toutes les erreurs en PHP

    Je ne sais pas comment tu récupère ta variable $Nouveauprod, mais tu peux l'afficher;utilise var_dump() ou autre pour vérifier avant.
    json_decode peut s'utiliser avec un deuxième paramètre.

    Si tu lis du json directement, il faut aussi que le content-type soit du json.

  8. #8
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-type: application/json');
    var_dump($Nouveauprod);
    il me renvoie : Notice: Undefined variable: Nouveauprod
    Du coup l'erreur se situe peut être du côté de Windev ?
    La constitution de la variable $Nouveauprod est-elle juste à votre sens ?

    Cdlt

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Non

    $Nouveauprod n'est pas connu par la page php
    Ce n'est pas un problème windev.

    Tu aurais pu mettre var_dump($variablequinexistepas);
    Tu envoi en post à partir de windev, mais en php il ne connais pas ta variable $Nouveauprod

    en php echo $_POST["tavariable"];

    Si j'étais toi, je testerai en get pour comprendre.

    http://localhost/site_json/ajout.php...ntest&stock=10

    ton fichier php
    <?php
    echo "Description: ". $_GET['Description']. "<br />";
    echo "Stock: ". $_GET["stock"]. "<br />";

    ?>

  10. #10
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Tout d'abord j'ai modifié les paramètres du projet (Projet>Configuration courante>Unicode>Mode ANSI).
    Ensuite j'ai modifié la méthode d'envoie dans Windev Mais de l'autre côté sur la page en PHP, je n'ai rien lors de l'echo.

    Plus simple tu meurs, et pourtant cela ne fonctionne pas

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Code windev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    maReq est un restRequête
    LaReponse est un restRéponse 
     
    maReq.Méthode = httpGet
    maReq.URL = "https://xxx/testget.php?product=5123&stock=123"
     
    LaReponse = RESTEnvoie(maReq)
     
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errComplet))
    SINON
    	Info(LaReponse.Contenu)
    FIN
    code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(isset($_GET['product'])  && isset($_GET['stock']) ){
    echo 'produit ref='.$_GET['product']. ' stock='.$_GET['stock'];
    }else{
    echo 'envoi faux';
    }

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Et pour le json
    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
     
    sObjet est une chaîne = [
    	{
    	"product" : "reference2",
    	"stock" : "3"
    	}
    ]
    maReq.Méthode = httpPost
    maReq.URL = "https://xxx/testjson.php"
    maReq.Contenu=sObjet
    LaReponse = RESTEnvoie(maReq)
     
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errComplet))
    SINON
    	Info(LaReponse.Contenu)
    FIN

    Je pense qu'avec ceci tu devrais commencer à voir comment faire

  13. #13
    Membre à l'essai
    Homme Profil pro
    Analyste programmeur de système et consultant informatique
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Analyste programmeur de système et consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Points : 15
    Points
    15
    Par défaut Connexion Windev mobile et MySql
    C'est encourageant pour tes recherches de vouloir nous faire découvrir cette nouvelle technologie en terme de connexion. Mais pour ma part tu ferais mieux de lire l'aide Windev Mobile avant de te lancer dans une aventure en terme de programmation pour un gain de temps.

    A ma connaissance il existerais deux manière de connecter:

    1- Via un Web service (Accès natif, nécessitant la présence de la librairie de MySql et celle de l'accès natif)
    Exemple :

    <Résultat> = SQLConnecteWS(<Serveur du Webservice> , <Source> , <Utilisateur> , <Mot de passe> [, <Nom de la DataBase> [, <Type de la base> [, <Provider OLE DB> [, <Informations optionnelles>]]]])

    2- Via un accès alter natif qui nécessite les classe disponible sur le site de SQLMANAGERX (Pas d'usage de librairie)


    Adage : "Intitule de vouloir te servir d'une torche en présence de la lumière du jour"

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    A ma connaissance il existerais deux manière de connecter:
    Je ne pense pas.
    Certes, on peut utiliser l'accès natif ou la class PHP4WX, mais on peut aussi utiliser un webservice autre que sous Windev.
    Cela dépend du projet, des dépendances et obligations. Tout n'est pas forcement Windev.

    Si on veut se connecter à un site internet développé non pas sous WB mais en PHP par exemple, se faire un webservice peut avoir quelques avantages.
    Sur WM, pas de requêtes, juste une demande de résultat limité ou non; on tape pas dans la base de donnée de l'extérieur.
    Plus simple à gérer du coté du code Windev surtout pour la maintenance en fonction des améliorations.

    Pour l'utiliser sous différents CMS et même avec un Laravel, mes requêtes sont en cache et cela me permet d'avoir un pseudo analytics.

Discussions similaires

  1. [MySQL] Comment faire pour récupérer les données dans ce tableau avec php ?
    Par selim07 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2017, 23h58
  2. Réponses: 4
    Dernier message: 16/06/2011, 12h07
  3. Réponses: 4
    Dernier message: 11/05/2009, 14h48
  4. Réponses: 4
    Dernier message: 04/03/2009, 17h04
  5. Réponses: 4
    Dernier message: 05/01/2006, 09h01

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