Partage
  • Partager sur Facebook
  • Partager sur Twitter

[symfony 2] Verifier les valeurs d'un champ

contenu dans une base de données

    24 janvier 2017 à 11:02:28

    bonjour à tous

    je suis en stage, et je decouvre depuis 2 semaine symfony. En plus de m'avoir fait faire le tuto openclassroom, on m'a donnée un exercice.

    Il s'agit de créer, d'afficher et de resoudre une grille de sudoku.

    J'en suis à la dernier etape. J'ai attribué à chaque valeur de ma grille un boolean pour dire si j'affiche sa valeur ou pas. Pour le moment j'ai donc afficher les valeurs que l'on connait, pour celle qui ne sont pas visible un simple input (ce sera à modifier).

    Je dois donc créer un "formulaire" avec plein de champ input liée à une case, et un bouton submit, mais je n'ai pas envie qu'en faisant submit ça m'enregistre des valeur dans une base de données.

    Je veux juste verifier si les valeurs ecrite correpondent au valeur contenu dans une base de donnée, et si oui j ecrit cette valeur en vert.

    Du coup , mon cerveau bloque. j'aurais besoin d'un declic.

    Pour résumé, au click sur un bouton je verifie que les champs écrit correponde au champ contenu dans une base de donnée.

    Merci 

    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2017 à 11:38:28

      J'imagine que tu vas devoir passer par un service pour comparer les deux.

      Tu as quoi comme modèle jusqu'à présent?

      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2017 à 13:23:31

        elrika a écrit:

        bonjour à tous

        je suis en stage, et je decouvre depuis 2 semaine symfony. En plus de m'avoir fait faire le tuto openclassroom, on m'a donnée un exercice.

        Il s'agit de créer, d'afficher et de resoudre une grille de sudoku.

        J'en suis à la dernier etape. J'ai attribué à chaque valeur de ma grille un boolean pour dire si j'affiche sa valeur ou pas. Pour le moment j'ai donc afficher les valeurs que l'on connait, pour celle qui ne sont pas visible un simple input (ce sera à modifier).

        Je dois donc créer un "formulaire" avec plein de champ input liée à une case, et un bouton submit, mais je n'ai pas envie qu'en faisant submit ça m'enregistre des valeur dans une base de données.

        Je veux juste verifier si les valeurs ecrite correpondent au valeur contenu dans une base de donnée, et si oui j ecrit cette valeur en vert.

        Du coup , mon cerveau bloque. j'aurais besoin d'un declic.

        Pour résumé, au click sur un bouton je verifie que les champs écrit correponde au champ contenu dans une base de donnée.

        Merci 

        Vois ton tableau du sudoku comme une matrice de valeurs. Fais un array qui va représenter une matrice An x Am (9 lignes 9 colonnes ?). Tu as la matrice complète en BD tu la charges et tu vérifies les données introduites par l'utilisateur à l'aide d'une double boucle qui va vérifier les valeurs sur chaque ligne et chaque colonne. Ca c'est pour la théorie après il faut voir comment tu as pensé tes entités comme l'a si bien dit mr
         whouki.
        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2017 à 14:16:36

          Merci pour votre aide.

          En php pur je pense que j'y arriverai "facilement", c'est juste que j'ai pas encore la logique symfony, et que j'essaie de faire propre sans trop bidouiller :).

          Et comme je n'ai pas encore l'esprit symfony, je n'ai pas pensé à faire un service

          Pour info mes modèles (entité) j'ai : (désolé si j'emploie mal mes termes)

          Une entité grile, qui contient, un id et le niveau de difficulté de la grille

          une entité carré (il s'agit d'un carrée dans la grille de sudoku qui contient 9 chifffre differents), cette entité contient un id, une position X et position Y (que j'ai mis pour afficher ma grille, mais pour l'instant j'ai pas reussir à m'en servir, je suis rouillé niveau math :) , ce modèle est relié de façon bidirectionnelle à l'entité grille (une grille contient 9 carrée)

          une entité case qui contient un id, une position X et poisiton Y (dans le carrée et pas dans la grille totale) une valeur (de 0 à 9) et visible (boolean) pour savoir si la case s'affiche ou si c'est une case que le joueur doit decouvrir.

          Je vais essayer en pensant en service et en PHP "pur", pour ensuite voir comment mieux afficher ma grille, car pour le moment les grilles s'affiche suivant l'ordre d'id dans la base de données et pas part rapport à leur position

          merci de votre aide

          • Partager sur Facebook
          • Partager sur Twitter
            24 janvier 2017 à 15:26:03

            elrika a écrit:

            Merci pour votre aide.

            En php pur je pense que j'y arriverai "facilement", c'est juste que j'ai pas encore la logique symfony, et que j'essaie de faire propre sans trop bidouiller :).

            Et comme je n'ai pas encore l'esprit symfony, je n'ai pas pensé à faire un service

            Pour info mes modèles (entité) j'ai : (désolé si j'emploie mal mes termes)

            Une entité grile, qui contient, un id et le niveau de difficulté de la grille

            une entité carré (il s'agit d'un carrée dans la grille de sudoku qui contient 9 chifffre differents), cette entité contient un id, une position X et position Y (que j'ai mis pour afficher ma grille, mais pour l'instant j'ai pas reussir à m'en servir, je suis rouillé niveau math :) , ce modèle est relié de façon bidirectionnelle à l'entité grille (une grille contient 9 carrée)

            une entité case qui contient un id, une position X et poisiton Y (dans le carrée et pas dans la grille totale) une valeur (de 0 à 9) et visible (boolean) pour savoir si la case s'affiche ou si c'est une case que le joueur doit decouvrir.

            Je vais essayer en pensant en service et en PHP "pur", pour ensuite voir comment mieux afficher ma grille, car pour le moment les grilles s'affiche suivant l'ordre d'id dans la base de données et pas part rapport à leur position

            merci de votre aide


            Tu peux penser à faire ton service une fois que tu as compris le concept pour mettre ton code dans un fichier à part et que tu puisses l’appeler sans réécrire deux fois le même code mais d'abord il faut réussir à le faire tel quel.

            Donc tu as grille(id, niveau_difficulté) OneToMany Carré(id, X, Y) OneToMany Case(id, X,Y, affiché) si je comprends bien ? 

            1) Crée tes entités à l'aide la commande 

            php bin/console generate:doctrine:entity

            2) Fais le mapping de tes associations

            3) Fais un formulaire pour la grille => regarde du coté du type CollectionType, EntityType

            4) Affiche ton formulaire 

            5) Quand tu soumets ton formulaire vérifie tes données avec celles en base de données

            Ou alors, pour savoir si le sudoku est faux tu peux tout simplement calculer les lignes et les colonnes !!! pas besoin de faire un appel à la BD :)

            • Partager sur Facebook
            • Partager sur Twitter
              24 janvier 2017 à 15:48:27

              Merci de votre aide.

              En effet il s'agit de cela pour les intities avec pour case un champ .

              J'ai déjà créer les entité, relation, etc

              Ok , je vais voir du coté du type collection, entities. J'ai déjà un peu étudier cela en faisant un simple formulaire avec écriture dans la base de données.

              Peut être que j'emploie de mauvais mot, car il ne s'agit pas d'un formulaire de soumission (POST) pour créer un sudoku.

              Mais un "formulaire" de VALIDATION(GET), je récupère la valeur, je la compare à la base de donnée,

              Du coup j''affiche une grille de sudoku avec des div qui contiennent une valeur écrite et des input où l'on écrit nos valeur pour résoudre le sudoku. 

              Pour l'instant j'ai juste afficher en twig un simple input, mais du coup il faut que je créer un formulaire pour générer le input.

              J'ai fait un services qui compare 2 nombres (pour le moment écrit à la main), il reste plus qu' je récupère la valeur du input, et celle de la base de données.

              :), ça aurait été plus simple de passer par le calcul, mais si un chiffre est bon il passe au vert, et il a un message qui écrit le nombre d'erreur 

              Merci

              je retourne à mes recherche en regardant pour le formulaire et l'affiche dans mon twig en espérant que je peux l'afficher de façon dynamique

              • Partager sur Facebook
              • Partager sur Twitter
                24 janvier 2017 à 16:03:38

                elrika a écrit:

                Merci de votre aide.

                En effet il s'agit de cela pour les intities avec pour case un champ .

                J'ai déjà créer les entité, relation, etc

                Ok , je vais voir du coté du type collection, entities. J'ai déjà un peu étudier cela en faisant un simple formulaire avec écriture dans la base de données.

                Peut être que j'emploie de mauvais mot, car il ne s'agit pas d'un formulaire de soumission (POST) pour créer un sudoku.

                Mais un "formulaire" de VALIDATION(GET), je récupère la valeur, je la compare à la base de donnée,

                Du coup j''affiche une grille de sudoku avec des div qui contiennent une valeur écrite et des input où l'on écrit nos valeur pour résoudre le sudoku. 

                Pour l'instant j'ai juste afficher en twig un simple input, mais du coup il faut que je créer un formulaire pour générer le input.

                J'ai fait un services qui compare 2 nombres (pour le moment écrit à la main), il reste plus qu' je récupère la valeur du input, et celle de la base de données.

                :), ça aurait été plus simple de passer par le calcul, mais si un chiffre est bon il passe au vert, et il a un message qui écrit le nombre d'erreur 

                Merci

                je retourne à mes recherche en regardant pour le formulaire et l'affiche dans mon twig en espérant que je peux l'afficher de façon dynamique

                Personnellement, je le ferais comme ça : Je mettrais en base de données le sudoku incomplet. Ensuite je charge le sudoku incomplet et je l'affiche 
                avec les cases à compléter. Une fois que les cases ont été complétées je fais appel à un service qui va voir que toutes mes cases ont bien été complétées et que j'ai bien les bons chiffres dans les cases (voir les règles du sudoku, il faut avoir une et une seule fois les nombres 1 à 9 sur une ligne et une colone c'est bien ça ?). Ensuite je renvoie une réponse à l'utilisateur pour dire qu'il a réussi ou pas. 

                Et pour ta compréhension : une requête GET affiche des données (généralement), une requête POST récupère les données introduites par un utilisateur => donc le formulaire de "validation" comme tu dis c'est que tu fais une requête GET pour l'afficher et c'est une requête POST qui récupère les données introduites par l'utilisateur afin qu'elles soient vérifiées et si Dieu le veut elles sont mises en base de données. Je dis bien SI. 

                • Partager sur Facebook
                • Partager sur Twitter

                [symfony 2] Verifier les valeurs d'un champ

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown