Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour formulaire HTLM

    24 juin 2017 à 16:15:25

    Et oui, SQL ne permet aucune incohérence, bien vu de ta part, une telle erreur est en effet parfois chiante à trouver car on est souvent sûr de nous et on cherche quelque chose de plus sérieux  ^^ 

    Ou comme celui qui utilise un mot réservé -> https://fr.wikibooks.org/wiki/MySQL/Mots_r%C3%A9serv%C3%A9s 

    Maintenant que tu sais insérer ( idem pour d'autres type de requêtes) et que tu sais que si cela ne marche pas c'est que tu as oublié quelque chose tu peux te poser tranquillement pour mettre au propre ton concept.

    Tu pourrais décomposer en plusieurs tables, exemple :

    - Table des marque de véhicule avec leur identifiants.

    - Table de description.

    - Table des horaires de réservation

    etc... Il est plus bien pratique/évolutif et rapide de faire des jointures cohérentes que de tout mettre en une seule tables.

    A le moindre modification (ajout / suppression de champs, nouvelles options, etc...) il sera plus facile à mettre en place une nouvelle table et la relation fera le travail de recherche.

    la limite du nombre de tables dépend de la taille de mémoire allouée par ton disque dur / ou hébergeur, donc pas de souci de ce côté la. Les bases de données ont étés pensées comme cela, pas pour faire une unique table immense ^^

    -
    Edité par Lucky13 24 juin 2017 à 16:21:53

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2017 à 21:35:31

      Bonjour, 

      C'est conseillé de décomposer en plusieurs table ? 

      Comme cité, je peu créer un table par exemple avec la marque et le model de la voiture ; 

      Autre tâble avec ville départ, ville retour... 

      Cela peux être effectivement une idée. cependant, pour faire appel à la table via un fichier php, et surtout pour faire appel à plusieurs champ bdd qui sont situés dans 2 ou 3 table est-il possible . 

      simple exemple, que j'ai tester aujourd'hui : 

      $reponse = $bdd->query('SELECT  veh, carburant, portes, prix, climatisation FROM t_test WHERE id=\'11\'');
      
      while ($donnees = $reponse->fetch())
      {
      	
      	echo $donnees['veh']; 
      	 
      }
      
      $reponse->closeCursor();
      
      ?>	

      Imaginons que le champs "PRIX" se trouve dans une autre table, dois-je l'indiquer au niveau de query j'imagine genre SELECT FROM t_test AND prix...


      • Partager sur Facebook
      • Partager sur Twitter
        24 juin 2017 à 21:58:42

        Comment expliquer, je ne suis pas très pédagogue ^^ 

        On utilise aussi PHP surtout pour générer du code HTML, donc en faisant une jointure tu va générer certaines partie de ton formulaire.

        La tout est statique, si tu veux rajouter une marque, une description ou changer un tarif tu change le code HTML, c'est pas le but.

        Que la partie horaire n'est pas vocation à évoluée (html en dur) ok, mais pour le reste non. On entre une nouvelle marque,un nouveau lieu dans la base de donnée. l'utilisateur demande l'url de la page, jointure SQL + génération du formulaire.

        Est-ce plus clair :D

        Tu vois, partie SQl est ultra importante, c'est un peu elle qui dicte le code PHP qui sera écrit pour générer la page. Le reste du code PHP n'est que des insertion, suppressions, et 90% de vérification/sécurisation des données utilisateur.

        Voilà pourquoi on utilise un outil comme merise, mysql Workbench pour concevoir la structure de la base de données. Tu peux aussi le faire sur papier bien sûr...

        Et pour le concept : un logigramme est assez utile aussi.

        ------------

        D'ailleurs mettre des $_POST ou $_GET directement dans une requête comme tu le fais en ce momment est strictement interdit : c'est une faille.

        Il faut donc vérifier chaque paramètre, il existe aussi des filtres  prêt à l'emploi pour traiter/nettoyer en PHP

        -> https://openclassrooms.com/courses/les-filtres-en-php-pour-valider-les-donnees-utilisateur 

        -
        Edité par Lucky13 24 juin 2017 à 22:10:20

        • Partager sur Facebook
        • Partager sur Twitter
          24 juin 2017 à 22:52:42

          je vois un peu le principe. moi qui croyait au bout d'un mois j'aurai maitrisé le php/mysql lol . dans ce cas je pense qu'il me faudrait des années...

          Il va falloir que je sois patient et pratiquer le plus possible afin de mémoriser petite à petit les choses . 

          • Partager sur Facebook
          • Partager sur Twitter
            24 juin 2017 à 23:05:52

            Non cela vient naturellement petit à petit en pratiquant :) , perso je ne suis qu'un amateur aussi, j'ai beaucoup à apprendre encore...

            Je t'ai juste informer du but à atteindre, sachant que l'on reste en procédurale (pas de POO ni de modèle MVC)

            Comme tu débutes tu peux bien sûr t'entraîner avec une seule table, j'ai également fais de même donc pas de soucis.C'est même normal...

            Cela va te permettre à créer une page dynamique, faire des insertions, mises à jour, suppressions dans ta table et vérifier les données POST avant de les enregistrer.

            Donc on peut continuer ainsi... mais pas de champ en varchar pour stocker des données temporelles...

            • Partager sur Facebook
            • Partager sur Twitter
              25 juin 2017 à 23:45:26

              slut, 

              Après un redémarrage du pc, impossible de me connecter d'inserer des donnés dans la bdd, erreur : 

              Parse error: syntax error, unexpected 'define' (T_STRING) in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php on line 3
              

              alors qu'aucune modif n'a été faite dans le fichier test que tu m'as envoyé, 

              j'ai du recopier de nouveau, absolument rien

              • Partager sur Facebook
              • Partager sur Twitter
                26 juin 2017 à 0:57:14

                Il est un peu tard ^^ 

                Tu parles de ce code  la ?

                <?php
                 
                define("HOST",        "localhost");     // en local par defaut
                define("DB_NAME",     "open");          // dbname
                define("ROOT",        "root");          // utilisateur root
                define("MDPASS",      "");              // mdp
                  
                // Connexion à la base de données
                try
                {
                 $objetPdo = new PDO('mysql:host='.HOST.';dbname='.DB_NAME.';charset=utf8', ''.ROOT.'',''.MDPASS.'');
                 $objetPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                }
                catch (PDOException $e) {
                    print "Erreur de connexion, désolé... " . $e->getMessage() ; die();
                }
                 
                $_POST['voiture'] =  'Alafa Roméo 156 V3.0';
                 
                // **********************
                $pdoStat = $objetPdo->prepare('INSERT INTO t_test (veh, lieu_arrivee) VALUES ( :veh, now() )'); 
                 $pdoStat->bindValue(':veh', $_POST['voiture'], PDO::PARAM_STR);
                  
                // on éxécute la requête
                      
                        $insertIsOk = $pdoStat->execute();
                          
                        if($insertIsOk){
                            $message = 'les données ont été ajoutés';
                        }
                        else{
                            $message = 'echec';
                        }
                         
                        echo $message;

                Vérifie bien l'écriture de ton code, il manque quelque chose ( <?php ou un virgule, un truc du genre..)

                Define == constante, elles doit être en majuscule aussi.

                Poste ton code actuel...

                -
                Edité par Lucky13 26 juin 2017 à 1:05:00

                • Partager sur Facebook
                • Partager sur Twitter
                  30 juin 2017 à 13:43:26

                  slt



                  Désolé pour ce retard, en effet, comme soupçonné depuis le début, mon easy php ne fonctionnait pas correctement suite au souci de plusieurs DLL windows, j'ai dû formater et réinstaller le tout :-



                  Tout est ok en ce moment, merci bcp 



                  Par contre, j'ai une question, concernant la partie Fonctions, j'ai suivi 2 fois le cours, mais je n'ai strictement rien compris au système des fonctions.

                  J'essaye de comprendre à quoi peu servir une fonction par rapport au formulaire que je souhaite réaliser pour mon test, mais je ne trouve pas de solution.



                  Entant le cours parle de calculCube ( En fin, moi, j'aurai utilisé autre chose que le calcul du cube :-p ) mais bon je respect le choix et je pense que c'est à cause de cela que je n'ai pas compris, car je suis trop, mais alors là trop naze en math.

                  Aurais-tu un autre exemple pour quoi svp ?

                  Je me suis basé sur mon formulaire, ma logique est :

                  Comment calculer le montant d'une location de voitures à l'aide de la date.

                  Date aller + date retour = total jours + heure aller + heure retour = total ?

                  Bien à toi 

                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 juin 2017 à 14:24:52

                    Hello,

                    J'ai peu de temps (très occupé).

                    Une fonction demande un peu d'exercices pour bien comprendre.

                    Ensuite même si elle apporte plus de lisibilité dans ton code, car elle est extérieur au script de traitement et qu'il suffit de la changer pour modifier le comportement général, elle est surtout utile si tu en as a souvent besoin. Autrement dit que plusieurs scripts lui fait appel.

                    Exemple, un script de connexion, inscription, mot de passe oublié et modifier mdp/pseudo/mail. Il est évident qu'une fonction de sécurisation  du pseudo, mail et mdp servira aux 4 formulaires. On mettra ces fonctions dans un script externe ( fc_verif.php par exemple) qui sera inclus selon  l'action en cours.

                    ps: on dépasse le cadre du HTML, il faut travailler dessus et poser tes questions dans un autre forum (js, php, java, etc...). Le HTML n'est pas un langage de programmation.

                    Ensuite pour les dates il faut s'exercer aussi, perso j'utilise le langage SQL (donc dans mes requête à la DB) qui mâche le travail, il est puissant pour cela, il tient même compte des années bissextiles, chose que tu auras du mal à faite toi même...

                    Dans ton cas un simple  between entre 2 dates te sortira le nombre de jours, heures, minutes et secondes écoulées. As toi de choisir le format de sortie ensuite, Intéressant non?

                    -
                    Edité par Lucky13 30 juin 2017 à 14:46:05

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Besoin d'aide pour formulaire HTLM

                    × 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