Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2011, 16h11   #1
Membre habitué
 
Avatar de berti
 
Inscription : août 2007
Messages : 214
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2007
Messages : 214
Points : 125
Points : 125
Par défaut cases à cocher et base de données

bonjour, à tous. Je dois gérer des hebergements touristiques.

j'ai une table hébergement, caractéristique et une table qui récupèrent les identifiants hébergement et caractéristiques.

J'ai une page web où je saisis les différents éléments de l'hébergement (nom, adresse, etc) et des cases à cocher pour les caractérisques.

Tout s'enregistre comme il faut mais il m'insére des valeurs 0 en plus des valeurs de la base de données

code d'insertion :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql="INSERT INTO `hebergement` (`NUM_HEBERGEMENT`, `NUM_CONTACT`, `INTITULE`, `ADRESSE_H`, `CP_H`, `VILLE_H`, `TEL_H`, `FAX_H`, "
		."`WEB`,  `CLASSEMENT`,`GPS_X`, `GPS_Y`, `FERMETURE`, `CHAMBRE`, `CAPACITE`, `LIEN_PHOTO`, `NUM_LABEL`, `NUM_CATEGORIE` ) VALUES " 		."('$num', '$contact', '$nom', '$adresse', '$cp', '$ville', '$tel', '$fax', '$web', '$classement', '$gpsx', '$gpsy', "
		."'$fermeture', '$chambre', '$capacite', '$photo', '$label', '$categorie');";
 
		$exec=mysql_query($sql,$connec) or die("erreur insert contact -> ".mysql_error());
 
		foreach ($_POST  as $cle => $valeur)
		{	
				$sql1="INSERT INTO `caracheber` (`NUM_HEBERGEMENT`, `NUM_CARACTERISTIQUE`) VALUES ('$num', '".$cle."');";
				$exec1=mysql_query($sql1,$connec) or die("erreur insert caracheber -> ".mysql_error());		
		}		
 
		echo "<SCRIPT LANGUAGE='JavaScript'>";
		echo "alert('L'hebergement -$nom- a bien été ajouté.')";
		echo "</SCRIPT LANGUAGUE>";
dans la table je vais avoir

NUMERO | NUM_CARACTERISQTIQUE | NUM_HEBERGEMENT
1 | 0 | 0
2 | 0 | 0
3 | 1 | 11
4 | 2 | 11
5 | 0 | 0
6 | 2 | 19


les valeurs 0 ne sont pas dans les tables

Merci d'avance
berti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 16h17   #2
Membre éclairé
 
Avatar de Ceddoc
 
Homme Cédric
Développeur Java / Web / .NET
Inscription : janvier 2009
Messages : 327
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Java / Web / .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2009
Messages : 327
Points : 369
Points : 369
Je dirais que 0 est la valeur par défaut des tes champs NUM_CARACTERISQTIQUE et NUM_HEBERGEMENT donc du coup si les variables sont nulles ou vide il te met tes champs à 0
Ceddoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 16h24   #3
Membre habitué
 
Avatar de berti
 
Inscription : août 2007
Messages : 214
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2007
Messages : 214
Points : 125
Points : 125
dans la structure de la table, NUM_CARACTERISQTIQUE et NUM_HEBERGEMENT sont à NULL non, défaut vide.

Est-ce que la solution serait, à ce moment là, de faire une requête après l'ajout de suppression ?

Code :
delete from caracheber where NUM_CARACTERISTIQUE =0;
berti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 16h33   #4
Membre éclairé
 
Avatar de Ceddoc
 
Homme Cédric
Développeur Java / Web / .NET
Inscription : janvier 2009
Messages : 327
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Java / Web / .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2009
Messages : 327
Points : 369
Points : 369
Citation:
Envoyé par berti Voir le message
dans la structure de la table, NUM_CARACTERISQTIQUE et NUM_HEBERGEMENT sont à NULL non, défaut vide.

Est-ce que la solution serait, à ce moment là, de faire une requête après l'ajout de suppression ?

Code :
delete from caracheber where NUM_CARACTERISTIQUE =0;
Quel est le type de tes champs?

oui cette solution marcherais si les champs ne peuvent jamais être à 0 en fonctionnement normal mais je trouve ça assez sâle...
Ceddoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 16h46   #5
Membre habitué
 
Avatar de berti
 
Inscription : août 2007
Messages : 214
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2007
Messages : 214
Points : 125
Points : 125
on est bien d'accord que c'est pas propre

j'ai 3 champs dans la table :

berti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 16h55   #6
Membre éclairé
 
Avatar de Ceddoc
 
Homme Cédric
Développeur Java / Web / .NET
Inscription : janvier 2009
Messages : 327
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Java / Web / .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2009
Messages : 327
Points : 369
Points : 369
je viens de vérifier, par défaut, mysql met 0 comme valeur à un int qu'on essaye d'insérer à null même si on a pas définit de valeur par défaut. (Il n'est d'ailleur pas possible de définir la valeur par défaut d'un entier à null)

Donc pour remédier à ton problème tu peux faire un traitement à exploitation de table qui ignore la valeur si c'est 0 ou essayer de mettre -1 comme valeur par défaut.

tu peux aussi supprimer les lignes dont les valeurs sont à 0 mais tant qu'à faire il vaut mieux ne pas les insérer.

et pour ton champ qui est varchar normalement il devrait accepter les chaînes vide.
Ceddoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 16h58   #7
Membre habitué
 
Avatar de berti
 
Inscription : août 2007
Messages : 214
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2007
Messages : 214
Points : 125
Points : 125
je vérifie tout ça

merci
berti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h09   #8
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
il y'a surtout un souci de code..

Code :
foreach ($_POST  as $cle => $valeur)
tu fais un for each sur toutes t'es variable post ..

et tu inseres tes cles comme num d'enregistrement ????
peux ton-voir ton html?
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2011, 17h13   #9
Membre éclairé
 
Avatar de Ceddoc
 
Homme Cédric
Développeur Java / Web / .NET
Inscription : janvier 2009
Messages : 327
Détails du profil
Informations personnelles :
Nom : Homme Cédric
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Java / Web / .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2009
Messages : 327
Points : 369
Points : 369
Citation:
Envoyé par boo64 Voir le message
il y'a surtout un souci de code..

Code :
foreach ($_POST  as $cle => $valeur)
tu fais un for each sur toutes t'es variable post ..

et tu inseres tes cles comme num d'enregistrement ????
peux ton-voir ton html?
comment j'ai pu louper ça c'est assez bizarre en effet
Ceddoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h07.


 
 
 
 
Partenaires

Hébergement Web