je suis entrain de créer un formulaire de contact, ou il ya un bouton checkbox avec trois choix, sachant qu'on peut cocher tous les trois, mais je n'ai qu'une seule valeur qui s’insère dans la base de donnée (la dernière)..
est ce qu'il ya une possibilité de les afficher tous ??
Souhaitez-vous être rappelé :
Le matin Après midi Soirée (17h à 19h)
page d'insertion :
<?php
$base="academia";
$conn=mysql_connect("localhost", "root", "");
mysql_select_db($base);
$appel=$_POST['appel'];
$sql='insert into inscription VALUES("", "'.mysql_escape_string($appel).'")';
$req=mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());
header("location:conf_contact.php");
?>
Tes noms d'input doivent être du style :
name="appel[]"
Tu récupéreras un tableau dans $_POST['appel'] côté serveur sur lequel il te suffira d'itérer (foreach())
Au passage :
- mysql_escape_string() est obsolète et génère une erreur (cf mysql_real_escape_string())
Par extension toutes les fonctions mysql_*() sont vieillottes et sont très avantageusement remplacées par mysqli() ou PDO
- tu devrais t'assurer que les variables que tu reçois du formulaire sont bien celles qui y sont définies. Tu attends "matin", "apres_midi" ou / et "soiree", pas "23 ans avant JC" qu'un plaisantin pourrait très facilement envoyer. Ca n'a peut être pas grand intérêt dans ce cas, mais c'est une bonne habitude à prendre.
-
or die ('Erreur SQL !
'.$sql.'
'.mysql_error());
=> à ne jamais faire en production car gros risque de sécurité en fournissant, avec mysql_error() et $sql, des informations importantes qui peuvent être utilisées pour pirater ton site.
-
header("location:conf_contact.php");
Il faut toujours faire suivre un header("L
ocation: ...) d'un exit(); pour ne pas que le script éventuellement présent plus bas ne soit transmis.
Merci pour votre aide mais j'ai un message d'erreur dans la page d'insertion (sachant que je n'ai pas que cette valeur, j'ai d'autre champs) , peut être que j'ai fais une erreur sans faire attention
voilà la code complet de ma page d'insertion, ça ce très généreux de ta part si tu me le refais avec les autres champs que j'ai (je suis encore débutante ), c pour cela j'ai pas pu m’en sortir
comme j'ai pas le form complet ...
la table vite fait à refaire, enum exemple pour la civilité
CREATE TABLE IF NOT EXISTS `inscription` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`civilite` varchar(50) NOT NULL,
`nom` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`tel` varchar(50) NOT NULL,
`formation` varchar(50) NOT NULL,
`question` varchar(50) NOT NULL,
`appel` varchar(50) NOT NULL,
`naissance` varchar(50) NOT NULL,
`lieu` varchar(50) NOT NULL,
`adresse` varchar(50) NOT NULL,
`situation` varchar(50) NOT NULL,
`reference` varchar(50) NOT NULL,
`autre_ref` varchar(50) NOT NULL,
`datejour` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Vous n’avez pas trouvé la réponse que vous recherchez ?
voilà la code complet de ma page d'insertion, ça ce très généreux de ta part si tu me le refais avec les autres champs que j'ai (je suis encore débutante ), c pour cela j'ai pas pu m’en sortir
Raison de plus, si tu es débutante, de chercher à le faire toi même, c'est comme cela qu'on apprend.
"Etre généreux" c'est aider et tenter de faire progresser, pas écrire du code à ta place.
Par ailleurs le point 9 du règlement dit ceci :
On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret.
Il dit également cela :
Inutile de demander du "code tout cuit", vous n'obtiendrez aucune réponse.
... malheureusement ça n'arrive que très rarement
Résultat :
Dans 90% des cas ça n'aide aucunement le débutant qui se contente de faire un copié / collé sans rien avoir compris au code.
Progression aide null
... tout porte à croire d'ailleurs que tu entres dans ces 90%.
Et pour éviter tout amalgame :
Si je tiens ce discours c'est pour toi et, par extension, pour les débutants, ... perso je m'en balance.