begin process at 2012 05 30 23:49:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

vendredi 24 décembre 2010 à 15:55:44 | Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

tonc

Bonjour,

J'arive sans probleme a inserer les zone de texte de mon formulaire dans ma base mais je bloque sur les cases à cocher malgrès le fait que j'ai trouver beaucoup de post traitant de ce sujet je n'arive pas à trouver la solution enfin je vous expose mon probleme:
Voici deja la partie de mon formulaire avec les case à cocher :
<p>
Cochez vos département d'activité :<br />
<input type="checkbox" name="01" id="01" value="01" /> <label for="01">01</label><br />
<input type="checkbox" name="02" id="02" value="02" /> <label for="02">02</label><br />
<input type="checkbox" name="03" id="03" value="03" /> <label for="03">03</label><br />
<input type="checkbox" name="04" id="04" value="04" /> <label for="04">04</label>
</p>
J'ai dans ma base de donnée un champ par departement et j'aimerais que par exemple dans le champ 02 la case a cocher inscrive 02 dans 04-04 etc... et pour l'instant sa n'insere ni "on" ni 0 ou 1 ni rien j'ai droit soit a mon message d'erreur soit il ne se plain pas mais n'insere rien...
Voici maintenant le code php que j'utilise :
$result = mysql_query("
INSERT INTO compte_utilisateur(
Nom_Utilisateur
, Mot_de_Passe
, Adresse_Email
, Date_Inscription
, Clef_Activation , test , 01 , 02 , 03 , 04
)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
, '" . $_POST["TB_test"] . "'
, '" . $_POST["01"] . "'
, '" . $_POST["02"] . "'
, '" . $_POST["03"] . "'
, '" . $_POST["04"] . "'
)
");
J'espere avoir ete asser clair et le debutant que je suis vous remercie infiniment à l'avance pour votre eventuelle futur aide.
vendredi 24 décembre 2010 à 18:58:58 | Re : Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

neigedhiver

Salut,

j'ai droit soit a mon message d'erreur soit il ne se plain pas mais n'insere rien


Et c'est quoi le message d'erreur ?

Es-tu sûr que $_POST['01'] existe ? Idem pour $_POST['02'] etc ?
D'après mes souvenirs, il me semble que les cases à cocher qui ne sont pas cochées ne sont pas envoyées , donc inexistantes dans $_POST

Est-ce que ta configuration permet l'affichage des erreurs ?
Code PHP :
error_reporting(E_ALL | E_STRICT);

pour être sûr...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
samedi 25 décembre 2010 à 04:59:14 | Re : Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

devil_may_cry

salut,
avec plusieurs case à cocher utilise plutôt une variable formulaire en forme de tableau
donc au lieu de faire name="01" ,name="02" tu fait
Code PHP :
<input type="checkbox" name="dpt[]" id="01" value="01" />
<input type="checkbox" name="dpt[]" id="02" value="02" />
//et à la reception du formualire tu as $tab_dpt = $_POST['dpt']; // tab_dpt est un array
//nb_dpt
$nbdpt = sizeof($tab_dpt) 

un truc dans ce genre ....

samedi 25 décembre 2010 à 22:09:35 | Re : Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

tonc

Bon alors tout d'abord merci pour vos reponse.
En reponse a devil_may_cry j'ai fait quelques changement dans ton sens voici :
Code PHP :
if ((isset($_POST['dpt'])) && ($_POST['dpt']!=''))
{
$tab_dpt = $_POST['dpt']; // tab_dpt est un array
while ($row_dpt = array_shift($tab_dpt))
    {
	$requete_appartenir = 'INSERT INTO compte_utilisateur(01, 02, 03, 04) VALUES(' .$row_dpt.')'or die (print_r($bdd->errorInfo())) ;
	$result = mysql_query ($requete_appartenir);
    }
}
(apres ce code vient mon anciene requete sql pour les champ texte)
je n'est pa reussi a utiliser la fonction sizeof() (erreur desolé je ne l'ai pa relever..) lorsque je l'est mis en boucle (a la place de la fonction array_shift ci-dessus) le temp de chargement de la page etait infini et le code de maintenant marche a la perfection mise a part que mes champs 01,02,03,04 ne sont toujours pas completé... voyez vous quelque chose que j'ai mal fait...? désolé de ramer mais mes faible competence sont a bout et je ne vois plus quoi changer...

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

Sinon en réponse à neigedhiver je n'ai plus de message d'erreur g essayer ton code mais il n'a rien retourner et celui que j'avais precedement était celui que j'avais moi meme ecrit en cas d'echec lors de la creation dutilisateur il ne m'indiquait donc rien quand à l'existance de mes variable tu as dû voir par toi meme qu'elle paraissait dans mon formulaire sauf si tu parle d'autre chose et que je ne saisi pas le sens de ta question...

Bon et bien j'attend vos idée avec impatience et vous en remercie par avance.
dimanche 26 décembre 2010 à 10:16:52 | Re : Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

syndrael

oila enfin quelqu'un qui écoute les conseils des gens et qui se couche moins bete le soir..
Bonnes fêtes
S.
lundi 27 décembre 2010 à 05:34:14 | Re : Impossible d'enregistrer les case a cocher dans ma base de donnée MYSQL (langage php)

devil_may_cry

Rien ne vaut un petit code pour expliquer donc j'espere que ca sera clair
Code PHP :
<?php
//$_POST['dpt'] = array('01','02','03');
if( isset($_POST['dpt']) && !empty($_POST['dpt']) ) {
	// Initialisation du compteur
	$cpt = 0;
	// Recuperation du nombre de dpt;
	$dpt = count($_POST['dpt']);
	// Recuperation des valeurs
	$valdpt = $_POST['dpt'];
	// Juste pour le deboguage
	if ($dpt == 0 ) {
		die('aucun dpt');
	} else {
		echo $dpt.' dpt';
	}
	// fin deb
	// Construction de la requete SQL,
	$sql = "INSERT INTO compte_utilisateur(01,02,03,04) VALUES(";
	for( $i=0; $i < $dpt; ++$i ) {
		 // Concatenation  avec les valeur à inserer
		 // Si la prochaine valeur est superieur à la borne max alors on ajoute pas de virgule
		 if( $i + 1 >= $dpt )
		 	 $sql.= "'".$valdpt[$i]."'";
		 else 
		   $sql.= "'".$valdpt[$i]."',";
	}
	// Fn de la boucle
	// Finalisation de la requête
	// ICI c'est la partie la plus crutial car si le nombre de case cocher est inferieur au nombre de case à remplir
	// Tu aura une erreur SQL genre "columns doesn't match" donc il faut verifier 
	// si le nombre de valeur envoyer est egal un nombre de champs à remplir si c'est le cas c'est bon sinon tu complete
	// Donc un aura par exmple le nombre de champs à remplir = 4
	$nbchampsfinal = 4;
	// On verifie le nombre de champs envoyer
	if( $nbchampsfinal > $dpt ) {
		for( $i = $dpt; $i < $nbchampsfinal; ++$i ) {
			if( $i + 1 > $nbchampsfinal )
		 	 	$sql.= "''";
		 	else 
		   		$sql.= ",''";
		}
	}
	
	$sql.= ')';
	// encore deboguage pour voir si la requete c'est bien construit
	echo $sql;
	// Execution de la requete
	mysql_query($sql) or die(mysql_error());
	// Encore une Derniere chose l'ordre des valeur dans dpt est le meme que celui de ton formulaire 
}
?>


Cette discussion est classée dans : base, case, cocher, post, tb


Répondre à ce message

Sujets en rapport avec ce message

qcm et case a cocher sur une Base MySQL [ par caper ] bonjour a tousje suis novice dans ce domainemon pb du moment est de faire un qcm avec une base MySQL.Les question doit s'afficher aleatoirement ainsi insertion d'un array dans une base de données [ par yravas ] bonjour, je voulais savoir s'il était possible d'inserer desx tableau dans une base de données? Les deux tableaux à sont à inserer dans la meme table Case a cocher activant ou desactivant des cases [ par nikos283 ] Bonjour,Je cherche a créer un formulaire contenant des champs qui soit utilisable ou non en fonction du fait que l'utilisateur coche ou non une case.M case a cocher !! [ par Xime ] salut :)voila j'ai une page avec un tableau regroupant les employés stockés dans ma base mais j'aimerais pouvoir mettre devant chacun une case a coche Problème de casse et accent dans une recherche sur une base ORACLE [ par chocholman ] Bonjour, J'ai un pb dans mon moteur de recherche Php pour une base ORACLE de casse et d'accent. Par exemple, lorsque je tape "évènement" le moteur me probleme de base de donnée [ par cacoucatatonique ] je désire generer automatiquement une base de donnée en fonction d'un formulaire; mon script est le suivant:   & php + javascript et case a cocher ! [ par jimmy69 ] Bonjour a tous, J'ai un p'tit souci au point de vue des cases cocher ! je vous explique j'ai un listing de contacts (nom, prenom etc...) que je liste Pb d'INSERT , aucune erreur retournée ... [ par Blasfem ] Salut à tous, J'ai un souci, je suis en trin de me former sur le PHP et ma page d'ajout ne fonctionne pas. Pourtant le code semble correct . ? inclu Formulaire dans base de donnée [ par fabiin ] Salut,Alors voilasur mon site, les gens s'y inscrive, et il y a une case ou ils mettent une description longue...(j'accept le html)jusque la, tous va probleme avec des case a cocher [ par dinver78 ] Mon probleme est le suivant :J'affiche une liste de client que je récupére dans ma bdd mysql et j'affiche une checkbox pour chaque ligneJ'aimerai savo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales