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
Partager