Positionnement null or not null
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 :lol: )
https://i.ibb.co/nkcjbrS/Sans-titre.jpg
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] https://i.ibb.co/ssZgh1f/Sans-titre-1.jpg
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:
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:
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:
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