Flutter Base de donnée MySQL

Bonjour à tous,
Après quelques difficultés pour utiliser une BDD MySQL, j’ai décidé de faire une vidéo pour l’expliquer.
En espérant que cela peut vous aider.
Bonne journée à tous

3 J'aime

Super ça :heart:

1 J'aime

Super mini tuto ! :+1:
Les performances sont bonnes sur mysql ?

Oui les performances sont bonnes.
J’ai un serveur ovh qui me sert de bac à sable (faire des tests) la base de donnée est plutôt bien sollicité (des requêtes permanente pour avoir des informations sur les événements sportifs) et J’ai fait en plus une application et il n’y a pas de ralentissement.

Voici l’application

J’utilise flutter avec mysql pour la partie base de données les résultats sont bons en effet. Par contre je galère pour afficher les lots à gagner dans ma boutique. Je voudrais afficher tous les types de lot avec à l’intérieur de chaque type de lot, tous les lots correspondant et je vois pas trop 1 - comment passer ça avec php/mysql et 2 - comment flutter va faire pour exploiter les données et afficher tout

je pense qu’il faut récupérer tous les lots en une seule requête et utiliser un ListView.builder pour les afficher.
un peu comme je l’ai fait dans la vidéo.

oui de base j’avais pensé faire comme ça mais ma complication c’est que je voudrais afficher les lots par type de lot, c’est à dire que j’ai dans ma table lot_boutique un champ id_type. J’aurais voulu afficher les lots groupés par type avec le libelle du type de lot et ensuite tous les lots de ce type là. J’ai aussi des soucis avec les types de données en flutter. Là j’ai transmis de php à flutter des nombres avec 5 chiffres derrière la virgule je fais un json_encode avant d’envoyer et quand je reçois le résultat dans flutter ça m’affiche plein de zéro et un 1 à la fin ça rajoute des chiffres 35.25467 devient 35.254670000001. Et sinon j’ai souvent des soucis de type de données avec flutter j’ai du mal à exploiter les données venant de mysql dans flutter

soit vous pouvez faire un orderBy sur votre champ id_type ou alors faire une requête par type.

concernant le problème de 0000001 je ne pense pas que cela vienne de mySql mais plutôt de la fonction qui va convertir les données en json.
en php si vous faite un dump de votre liste (avant de l’encoder) avez vous le problème ? si non refaite un dump de la donnée encodé pour voir si votre donnée est toujours bonne.

Là j’ai le souci suivant sur le typage des données je pense que c’est un truc bête.
La première ligne c’est le json que flutter récupère j’ai juste fait un print dans flutter
ligne 1 : {« status »:1,« id »:277,« gain »:1.11111}
Mais après ça plante
E/flutter ( 4406):[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type ‹ int › is not a subtype of type ‹ String ›
E/flutter ( 4406): #0 ParamGrattageState.ValideParam (package:gameapp/jouer_grattage.dart:223:56)
et quand je vais voir où il me dit que ça plante ça serait sur le id :

var response = await http.post(url, body: ticket_encode,headers: {‹ content-type ›: ‹ application/json ›,‹ accept ›: ‹ application/json ›,‹ authorization ›: globals.token});
print(response.body);
// Getting Server response into variable.
Map <String,dynamic> map = json.decode(response.body);
if (map[« status »]==1) {
var gain = map[« gain »];
var id_ticket = map[« id »];

  Navigator.push(
    context,
    AwesomePageRoute(
      transitionDuration: Duration(milliseconds: 600),
      exitPage: widget,
      enterPage: Affiche_Ticket_Grattage(id_ticket:id_ticket,gain:gain),
      transition: CubeTransition(),
    ),
  );

Le bug arrive à la ligne là selon flutter sur id_ticket :

enterPage: Affiche_Ticket_Grattage(id_ticket:id_ticket,gain:gain),

Je ne sais pas si tu vois des choses anormales

EDIT : j’ai trouvé mais quel galère je passais des valeurs d’une page à une autre mais quand je la récupérais de l’autre je la mettais en string et ça plantait, j’ai changé et mis en var simple et ça marche

je dirais que l’id est un int du coup il le refuse car ce n’est pas un string. il faut soit dire que le résultat est dynamic ou mettre un .tostring()

sinon vous pouvez mettre un breakpoint au niveau de var id_ticket = map[« id »]; pour voir ce que contient map[‹ id ›]

apres je vous avoue sans pouvoir tester le code c’est difficile de trouver le problème

merci pour ta réponse j’avais edité le message je vais avoir besoin d’une grande aide pour mon jeu, j’apprends au fur et à mesure mais c’est dur dur. Déja peut-être qu’il aurait été bien que je montre mon application à quelqu’un qui connait bien FLUTTER pour qu’il me dise où sont les problèmes et comment je pourrais optimiser les choses