Comment enregistrer formulaire dans Mysql ?
Résolu/Fermé
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
-
7 juil. 2011 à 18:39
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 - 7 juil. 2011 à 22:25
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 - 7 juil. 2011 à 22:25
A voir également:
- Comment enregistrer formulaire dans Mysql ?
- Audacity enregistrer son pc - Guide
- Comment enregistrer une video youtube - Guide
- Enregistrer en pdf - Guide
- Comment enregistrer une musique sur youtube en mp3 - Guide
- Formulaire de réclamation facebook - Guide
12 réponses
Hello,
Tu as déja un problème au niveau de tes balises select : <select name="country" id="country">
Elles ont toutes le même name et le même id
Le name doit correspondre au type des options. Pour l'année: <select name="annee" id="select_annee"> par exemple. Une fois que c'est corrigé je t'aide pour la récupération et l'insertion des données.
Tu as déja un problème au niveau de tes balises select : <select name="country" id="country">
Elles ont toutes le même name et le même id
Le name doit correspondre au type des options. Pour l'année: <select name="annee" id="select_annee"> par exemple. Une fois que c'est corrigé je t'aide pour la récupération et l'insertion des données.
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 19:27
7 juil. 2011 à 19:27
Voila c'est corriger =) Merci de ton aide
Alors je t'ai crée un script pour valider ton formulaire pour être sûr que la date est valide:
Tu peux remplacer la partie tout en haut par tes select et leur donnant le même attribut name que mes input et me dire si ca fonctionne
<form method="post"> Année<input type="text" name="annee" value="<?php print $_POST['annee']; ?>"/> Mois<input type="text" name="mois" value="<?php print $_POST['mois']; ?>"/> Jour<input type="text" name="jour" value="<?php print $_POST['jour']; ?>"/> <input type="submit" value="envoyer"/> </form> <?php if(isset($_POST['annee']) && isset($_POST['mois']) && isset($_POST['jour'])){ $error = false; $annee = $_POST['annee']; //Vérification de l'année $pattern = '/^(19[0-9]{2}|20[0-9]{2})$/'; if(!preg_match($pattern, $annee) && !$annee <= date('Y', time())){ $error = true; }else{ print 'Annee ok'; } //Vérification du mois $mois = $_POST['mois']; $pattern = '/^(0[1-9]|1[0-2])$/'; if(!preg_match($pattern, $mois)){ $error = true; }else{ print 'Mois ok'; } //Vérification du jour $jour = $_POST['jour']; $pattern = '/^(0[1-9]|[1-2][0-9]|3[0-1])$/'; if(!preg_match($pattern, $jour) || $jour > cal_days_in_month(CAL_GREGORIAN, $mois, $annee)){ $error = true; }else{ print 'jour ok'; } if(!$error){ print 'tout est ok =)'; }else{ print 'Erreurs ! '; } }else{ print 'Veuillez remplir tous les champs'; } ?>
Tu peux remplacer la partie tout en haut par tes select et leur donnant le même attribut name que mes input et me dire si ca fonctionne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 20:09
7 juil. 2011 à 20:09
Je te dis un grand merci a toi d'avoir pris du temps a m'aider =) Ca fait plaisir !
Je vais vite voir si ca fonctionne !!! Merci a toi encore
Je vais vite voir si ca fonctionne !!! Merci a toi encore
Pour information sur le code que je t'ai envoyé :
Il vérifie que l'année est située entre 1900 et l'année courante
Il vérifie que le mois est compris entre 01 et 12
Il vérifie que le jour est compris entre 01 et 31 et vérifie que le mois de l'année comprenait bien ce jour (par exemple février ne comporte pas de 30 et de 31)
Si tout est ok, il va falloir programmer l'enregistrement des données et pour ça je vais avoir besoin d'informations de ta part sur la table dans laquelle tu souhaites insérer les données (listing des champs).
Si tu n'as pas encore de table, on la créera.
Il vérifie que l'année est située entre 1900 et l'année courante
Il vérifie que le mois est compris entre 01 et 12
Il vérifie que le jour est compris entre 01 et 31 et vérifie que le mois de l'année comprenait bien ce jour (par exemple février ne comporte pas de 30 et de 31)
Si tout est ok, il va falloir programmer l'enregistrement des données et pour ça je vais avoir besoin d'informations de ta part sur la table dans laquelle tu souhaites insérer les données (listing des champs).
Si tu n'as pas encore de table, on la créera.
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 21:25
7 juil. 2011 à 21:25
Voici le nom de ma base de donées : bleedz
Je travaille sur wampserver donc localhost
Ma table s'appelle : membres
Et le nom pour enregistrer la date : membre_naissance c'est possible ?
Ta fais du bon boulot :) Grand merci a toi
Je travaille sur wampserver donc localhost
Ma table s'appelle : membres
Et le nom pour enregistrer la date : membre_naissance c'est possible ?
Ta fais du bon boulot :) Grand merci a toi
est-ce que tu peux me lister les champs présents dans ta table membres stp ? avec leur type si possible
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 21:38
7 juil. 2011 à 21:38
--
-- Structure de la table 'membres'
-- Structure de la table 'membres'
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 21:46
7 juil. 2011 à 21:46
Ben désoler je débute (ange) Mais merci pour ton aide grâce a ton petit code je vais essayer de me démerder =) Bonne soirée a toi !
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 21:57
7 juil. 2011 à 21:57
Ben si si tu as le temps ca me derange pas :p Je voudrais pas te déranger
Voila la dernière version:
Code SQL pour générer la base de donnée (Je l'ai faite de mon côté juste pour les tests, récupère juste le champ date de naissance)
et le fichier PHP:
EDIT : Correction mise en gras !
Code SQL pour générer la base de donnée (Je l'ai faite de mon côté juste pour les tests, récupère juste le champ date de naissance)
create database bleedz; use bleedz; create table user( uid int(11) unsigned auto_increment primary key, date_naissance date )engine=innoDB;
et le fichier PHP:
<meta charset="utf8"/> <!-- A enlever, placée temporairement pour résoudre les problème d'accents --> <?php if(isset($_POST['annee']) && isset($_POST['mois']) && isset($_POST['jour'])){ //Tableau dans lequel on va stocker les éventuels codes d'erreur $errorCode = array(); $annee = $_POST['annee']; //Vérification de l'année $pattern = '/^(19[0-9]{2}|20[0-9]{2})$/'; if(!preg_match($pattern, $annee) || $annee > date('Y', time())){ $errorCode[] = 0; } //Vérification du mois $mois = $_POST['mois']; $pattern = '/^(0[1-9]|1[0-2])$/'; if(!preg_match($pattern, $mois)){ $errorCode[] = 1; } //Vérification du jour $jour = $_POST['jour']; $pattern = '/^(0[1-9]|[1-2][0-9]|3[0-1])$/'; if(!preg_match($pattern, $jour) || $jour > cal_days_in_month(CAL_GREGORIAN, $mois, $annee)){ $errorCode[] = 2; } //Données valides if(count($errorCode) == 0){ //On tente de se connecter à la base de donnée $PARAM_hote='localhost'; // le chemin vers le serveur $PARAM_port='3306'; $PARAM_nom_bd='bleedz'; // le nom de votre base de données $PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter $PARAM_mot_passe=''; // mot de passe de l'utilisateur pour se connecter try { $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } //Gestion des erreurs de connexion catch(Exception $e) { echo 'Erreur : '.$e->getMessage(); die(); } //Préparation de la requête et insertion dans la base de donnée ! $dateFormat = sprintf('%s-%s-%s', $annee, $mois, $jour); $query = ("insert into user(date_naissance) values('$dateFormat')"); if($connexion->exec($query)){ $success = true; print 'Enregistrement effectué!'; }else{ die('Erreur'); } } }else{ print 'Veuillez remplir tous les champs'; } if($success){ exit(); } ?> <form method="post"> Année<input type="text" name="annee" value="<?php print $_POST['annee']; ?>"/> Mois<input type="text" name="mois" value="<?php print $_POST['mois']; ?>"/> Jour<input type="text" name="jour" value="<?php print $_POST['jour']; ?>"/> <input type="submit" value="envoyer"/> </form> <?php //Récupère et affiche les messages d'erreurs if(count($errorCode) != 0){ $msg = ''; foreach($errorCode as $code){ switch($code){ case 0: $msg .= 'Année incorrecte. <br />'; break; case 1: $msg .= 'Mois Incorrect. <br />'; break; case 2: $msg .= 'Jour incorrect. <br />'; break; default: $msg .= 'Une erreur s\'est produite. Veuillez réessayer. <br />'; } } print $msg; } ?>
EDIT : Correction mise en gras !
hellfirewar
Messages postés
57
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
13 septembre 2011
1
7 juil. 2011 à 22:23
7 juil. 2011 à 22:23
Merci pour ton code je vais le test directement. Ca me donne une petite idée comment le faire =) Je vais le modifier car faut que je l'intégre pour qu'il soit compatible =) Grand merci a toi passe une bonne soirée ;)
prosthetiks
Messages postés
1189
Date d'inscription
dimanche 7 octobre 2007
Statut
Membre
Dernière intervention
12 juin 2020
431
7 juil. 2011 à 22:25
7 juil. 2011 à 22:25
Je t'en prie, si tu as une question n'hésite pas!
Bonne suite =)
Bonne suite =)