Bonjours a vous les amis

j'ai une BDD avec section utilisateur qui contient : nom, prénom, age, cinema(checkBox), adresse

j'ai créé un code qui exporte les donnés des utilisateurs en .cvs ce qui fonctionne très bien.

voici un aperçus, on voit la BDD , mon bouton exporter CVS et le fichier final en .csv regarder bien Cinéma et Adresse ils sont bien positionné (vous allez comprendre pourquoi je parle de ca )





Dans mon App Web j'ai une section créer un utilisateur sur l'image suivante a votre gauche le checkbox Cinéma n'est pas cocher donc ca valeur est égal a 0 mais dans le fichier .CSV on constate que Cinéma se retrouve après adresse ? mais pourquoi donc ? vous pouvez voir que sur l'image à droite le checkbox Cinéma est cocher donc ca valeur est égal a 1 et dans le fichier .CSV il est exactement au bon endroit il se situe entre âge et adresse.
[/url]

Donc comment se fait-il que cinéma se retrouve a la fin si mon checkbox est NULL ?



Voici un peu de code

ForumulaireUser.php est le form pour créer un utilisateur quand je clique sur copie Local le value est égal à "copie" et rediriger vers createUpdateDeleteUser.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
 
<?php
include 'mesFunctionsSQL.php';
include 'afficherUser.php';
 
//Verification de l'id dans le URL si vide ou remplis
$id = isset($_GET['id']) ? $_GET['id'] : '';
 
//si le ID recupérer est egal à 0 l'action sera de créer un User Sinon mise a jours
if ($id==0) {
	$user = getNewUser();
	$action = "CREATE";
	$libelle = "Creer";
} else {
	$user = readUser($id);
	$action = "UPDATE";
	$libelle = "Mettre a jour";
}
 
 
//Affiche tout les erreurs dans le form
if (isset($_GET['erreurs']) ){
$erreurs=json_decode($_GET['erreurs']);
}
?>
 
<html>
<header>
	<link rel="stylesheet" href="../styles/formulaireUser.css">
</header>
 
<body>
	<form action="createUpdateDeleteUser.php" method="post">
			<a href="mainPageUser.php">Liste des utilisateurs</a>
 
			<input type="hidden" name="id" value="<?php if(isset($user['id'])) {echo $user['id']; } ?>" />
			<input type="hidden" name="action" value="<?php echo $action;  ?>" />
		<div>
			<label for="name">Nom :</label>
			<input type="text" id="nom" name="nom" value="<?php if(isset($user['nom'])) { echo $user['nom'];} ?>">
			<span class="error"> <?php if(isset($erreurs->nomErr)){ echo $erreurs->nomErr; }  ?></span>
 
		</div>
		<div>
			<label for="prenom">Prenom</label>
			<input type="text" id="prenom" name="prenom" value="<?php if(isset($user['prenom'])) { echo $user['prenom'];  }?>" >
			<span class="error"> <?php if(isset($erreurs->prenomErr)){ echo $erreurs->prenomErr; }  ?></span>
 
		</div>
		<div>
			<label for="age">Age:</label>
			<input type="text" id="age" name="age" value="<?php if(isset($user['age'])) { echo $user['age']; } ?>">
			<span class="error"> <?php if(isset($erreurs->ageErr)){ echo $erreurs->ageErr; }  ?></span>
		</div>
		<div>
			<label for="cinema">cinema :</label>
			<input type="checkbox" id="cinema" name="cinema" <?php if ($user['cinema'] == 1) $user['cinema'] = "checked"; echo $user['cinema'] ?>>
		</div>
		<div>
			<label for="adresse">adresse :</label>
			<input id="adresse" name="adresse" value="<?php if(isset($user['adresse'])) { echo $user['adresse']; } ?>" ></input>
			<span class="error"> <?php if(isset($erreurs->adresseErr)){ echo $erreurs->adresseErr; }  ?></span>
		</div>
 
		<div class="button">
			<button type="submit" name="envoi"><?php echo $libelle;  ?></button>
			<button type="submit" name="action" value="copie" formaction="createUpdateDeleteUser.php">Copie Local</button>
		</div>		
	</form>
 
	<br>
 
	<!-- si l'id recupérer n'est pas egal a 0 l'option Supprimer sera afficher -->
	<?php if ($action != "CREATE") { ?>
		<form action="createUpdateDeleteUser.php" method="post">
			<input type="hidden" name="action" value="DELETE" />
			<input type="hidden" name="id" value="<?php echo $user['id'];  ?>" />
			<p>
			<div class="button">
				<button type="submit">Supprimer</button>
			</div>
			</p>
		</form>
	<?php } ?>
 
</body>
 
</html>


CreateUpdateDeleteUser.php Récupère la valeur de action dans notre cas c'est "copie" et dans la condition si égal à copie je récupère un tableau et j'appelle la class CSV qui contient la static function export
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
<?php
include 'mesFunctionsSQL.php';
include 'afficherUser.php';
//recupération des données du form
// quel type d'action sera choisi
$action = $_POST["action"];
 
 
if ($action == "DELETE") {
	$id = $_POST["id"];
} else {
	$id = $_POST["id"];
	$nom = $_POST["nom"];
	$prenom = $_POST["prenom"];
	$age = $_POST["age"];
	$adresse = $_POST["adresse"];
	if (isset($_POST["cinema"]) == NULL) {
		$_POST["cinema"] = 0;
	} else {
		$_POST["cinema"] = 1;
	}
 
}
 
 
 
 
 
//  Creation du ficher excel pour sauvegarde local.
if ($action == "copie") {
	$datas = array($_POST);
	//Supprime lelement action dans le tab.
	unset($datas[0]["action"]);
	require '../class/class.csv.php'; 
	CSV::export($datas,'utilisateurs');
	exit;
}
 
 
if ($action == "CREATE") {
	validate_fields();
 
	createUser($nom, $prenom, $age, $adresse,$_POST["cinema"]);
	header("location:mainPageUser.php?message=User Created Successfully...!");
	exit;
}
 
if ($action == "UPDATE") {
	validate_fields();
 
	updateUser($id, $nom, $prenom, $age, $adresse,$_POST["cinema"]);
	header("location:mainPageUser.php?message=User Updated Successfully...!");
	exit;
}
if ($action == "DELETE") {
	deleteUser($id);
	header("location:mainPageUser.php?message=User Deleted Successfully...!");
}
 
 
//Validation des champs du formulaire de la page formulaireUser.php
function validate_fields()
{
	$erreurs = array();
	$flag = false;
	if (isset($_POST['id'])) {
		$id = $_POST['id'];
	} else {
		$id = 0;
	}
	// validation du champ nom si il est vide
	if (empty($_POST["nom"])) {
		$flag = true;
		$erreurs['nomErr'] = "Please enter a valid nom";
	}
	// validation du champ nom si conforme au preg_match
	if (!empty($_POST["nom"]) && !preg_match('/^[a-zA-Z-\s]+$/', $_POST['nom'])) {
		$flag = true;
		$erreurs['nomErr'] = "Only letters and white space allowed";
	}
	// validation du champ prenom si il est vide
	if (empty($_POST["prenom"])) {
		$flag = true;
		$erreurs['prenomErr'] = "Please enter a valid nom";
	}
	// validation du champ prenom si conforme au preg_match
	if (!empty($_POST["prenom"]) && !preg_match('/^[a-zA-Z-\s]+$/', $_POST['prenom'])) {
		$flag = true;
		$erreurs['prenomErr'] = "Only letters and white space allowed";
	}
 
	// validation du champ age si il est vide
	if (empty($_POST["age"])) {
		$flag = true;
		$erreurs['ageErr'] = "Please enter a valid age";
	}
	// validation du champ age si conforme au preg_match
	if (!empty($_POST["age"]) && !preg_match('/^[1-9][0-9]*$/', $_POST['age'])) {
		$flag = true;
		$erreurs['ageErr'] = "Only number allowed";
	}
 
	// validation du champ age si il est vide
	if (empty($_POST["adresse"])) {
		$flag = true;
		$erreurs['adresseErr'] = "Please enter a valid adresse";
	}
	// validation du champ adresse si conforme au preg_match
	if (!empty($_POST["adresse"]) && !preg_match('/^[a-z0-9 .\-]+$/i', $_POST['adresse'])) {
		$flag = true;
		$erreurs['adresseErr'] = "Only number allowed";
	}
	//si un des champ est egale a true retour une erreur dans le champ.
	if ($flag == true) {
 
		header("location:formulaireUser.php?&id=$id&erreurs=" . json_encode($erreurs));
		exit;
	}
}

class.csv.php ici je fais le nettoyage pour que le contenue sort tres bien visuellement dans un fichier .CSV
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?php
class CSV{
 
     static function export($datas,$filename){
        header('Content-Type: text/csv;');
        header('Content-Disposition: attachement; filename="'.$filename.'.csv"');
 
         $i = 0;
         foreach($datas as $v){
             if($i == 0) {
                 echo '"'.implode('";"',array_keys($v)).'"'."\n";
             }
             echo '"'.implode('";"',$v).'"'."\n";
             $i++;
         }
     }
}
?>

Donc si vous pouvez m'expliquer le pourquoi a mon probleme j'aimerais bien comprendre....

mon git avec les fichiers au besoin : https://github.com/MI7QC/CRUD