Comment enregistrer formulaire dans Mysql ?
Résolu
hellfirewar
Messages postés
57
Date d'inscription
Statut
Membre
Dernière intervention
-
prosthetiks Messages postés 1189 Date d'inscription Statut Membre Dernière intervention - 7 juil. 2011 à 22:25
prosthetiks Messages postés 1189 Date d'inscription Statut Membre Dernière intervention - 7 juil. 2011 à 22:25
A voir également:
- Comment enregistrer formulaire dans Mysql ?
- Whatsapp formulaire opposition - Guide
- Audacity enregistrer son pc - Guide
- Formulaire de réclamation facebook - Guide
- Comment enregistrer une musique sur youtube en mp3 - Guide
- Comment enregistrer une video youtube - 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.
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
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.
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
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 !