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 28/04/2011, 17h18   #1
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Par défaut Remplacer une chaîne vide par NULL

Bonjour,
débutant en PHP, j'ai quelques difficultés sur ce point :
j'ai créé un formulaire avec différents champs à saisir (tous ne sont pas obligatoires). Les données rentrées sont insérées dans une base de données.
Je voudrais que les champs vides soient remplacés par un NULL dans le SQL,
car je souhaite afficher les données sur une page et ça me fait des espaces vides.
Si quelqu'un peut me donner un coup de main...


Voici le code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
if (isset($_POST['envoyer'])) {
	 // déclaration des variables en fonction des champs
	 $nom = addslashes($_POST['nom']);
	 $info = $_POST['info'];
	 $adresse = $_POST['adresse'];
	 $adresse2 = $_POST['adresse2'];
	 $cp = $_POST['cp'];
	 $ville = $_POST['ville'];
	 $tel = $_POST['tel'];
	 $fax = $_POST['fax'];
	 $gsm = $_POST['gsm'];
	 $categorie = $_POST['categorie'];
	 $requete = "SELECT DISTINCT categorie.id_categorie FROM categorie, partenaire WHERE categorie.id_categorie = partenaire.id_categorie AND nom_categorie='$categorie'";
	 $resultat = mysql_query($requete);
	 while ($ligne = mysql_fetch_array($resultat)) {
	 $categorie = $ligne[0]; // récupère le num de la catégorie dans la variable à la place du nom
	 }
	 if(empty($_POST["info"])) { $info = NULL; } // ça ne marche pas
if(empty($_POST["gsml"])) { $gsm = NULL; } // idem
	 // déclaration de la requête
	 $requete = "INSERT INTO partenaire (
	 nom_partenaire, 
	 info_sup_partenaire, 
	 adresse_partenaire, 
	 adresse2_partenaire, 
	 cp_partenaire, 
	 ville_partenaire,
	 tel_partenaire,
	 fax_partenaire,
	 gsm_partenaire,
	 id_categorie) 
	 VALUES (
	 '$nom', 
	 '$info', 
	 '$adresse', 
	 '$adresse2', 
	 '$cp', 
	 '$ville',
	 '$tel',
	 '$fax',
	 '$gsm',
	 $categorie)";
 
	// enregistrement du résultat de la requete dans une variable
	$resultat = mysql_query ($requete);
whoaloic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 23h17   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Les besoins de presentations ne doivent pas influencer la structure de tes données.
De toute façon, que tu aies une chaine vide ou un NULL dans ta table, tu obtiendras une chaine vide quand tu voudras l'afficher en PHP.
C'est à l'affichage que tu dois tester ta valeur et la substituer si besoin.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 14h29   #3
Invité de passage
 
Inscription : février 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 10
Points : 1
Points : 1
Voici une solution pour conserver les valeurs NULL quald l'utilisateur ne remplit pas un champ dans un formulaire !
Les champs non obligatoires ont par valeur par défaut dans MySQL "NULL".

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 // déclaration de la requête
	$base="INSERT INTO partenaire";
	$cols="";
	 $vals="";
 
	 $cols .= "nom_partenaire";
	$vals .= "'" . $nom  . "'";
 
	 if ($info != '') {
		$cols .= ", info_sup_partenaire";
		$vals .= ",'" . $info ."'";	
	}
 
	 if ($adresse != '') {
		$cols .= ", adresse_partenaire";
		$vals .= ",'" . $adresse ."'";	
	}
 
	 if ($adresse2 != '') {
		$cols .= ", adresse2_partenaire";
		$vals .= ",'" . $adresse2 ."'";	
	}
 
	if ($cp != '') {
		$cols .= ", cp_partenaire";
		$vals .= ",'" . $cp ."'";	
	}
 
	if ($ville != '') {
		$cols .= ", ville_partenaire";
		$vals .= ",'" . $ville ."'";	
	}
 
	if ($tel != '') {
		$cols .= ", tel_partenaire";
		$vals .= ",'" . $tel ."'";	
	}
 
	if ($fax != '') {
		$cols .= ", fax_partenaire";
		$vals .= ",'" . $fax ."'";	
	}
 
	if ($gsm != '') {
		$cols .= ", gsm_partenaire";
		$vals .= ",'" . $gsm ."'";	
	}
 
	if ($email != '') {
		$cols .= ", email_partenaire";
		$vals .= ",'" . $email ."'";	
	}
 
	if ($logo2 != '') {
		$cols .= ", logo_partenaire";
		$vals .= ",'" . $logo2 ."'";	
	}
 
	if ($web != '') {
		$cols .= ", web_partenaire";
		$vals .= ",'" . $web ."'";	
	}
 
	$cols .= ", id_categorie";
	$vals .= ",'" . $categorie ."'";
 
	$requete = $base . "(" . $cols .") VALUES (" . $vals . ")";
whoaloic 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 08h40.


 
 
 
 
Partenaires

Hébergement Web