Plusieurs "IF" et valeurs dans un Foreach.
Posté : 07 mars 2015, 03:03
Bonjours / Bonsoir à tous !
Actuellement entrain d'écrire une page afin de faire des sessions au préalablement bien préparer sur papier comme me l'a conseiller Jreaux62, je suis entrain de perdre espoir à ce que mon code fonctionne et ce n'est pas histoire d'avoir "essayais" :
J'ai donc une formulaire avec à l'intérieur un tableau, jusque l'a rien de compliquer :
Sur on autre page à la validation du formulaire, je récupère ces valeurs ( J'ai bien penser à mettre les nom en tableau avec deux crochets après ) grâce au foreach :
Ce code fonctionne très bien :
Seulement pour l'ajout de mes sessions je suis obligé de rajouter cela et j'aimerais ne pas avoir à le changer :
J'ai alors réécrit le code afin de faire fonctionner cela mais après des essais, des Var_dump infinissables, des recherches infructueuses , je ne trouve pas la solution
Voici le code PHP en entier :
Ais-je le "droit" de faire :
Par éxemple ?
Merci pour votre aide !
Actuellement entrain d'écrire une page afin de faire des sessions au préalablement bien préparer sur papier comme me l'a conseiller Jreaux62, je suis entrain de perdre espoir à ce que mon code fonctionne et ce n'est pas histoire d'avoir "essayais" :
J'ai donc une formulaire avec à l'intérieur un tableau, jusque l'a rien de compliquer :
Code : Tout sélectionner
<form method="POST" id="formadd" action="Createtabadd.php" name="form">
<div id="sForm" class="sForm sFormPadding">
<table class="flatTable" table border="0" CELLSPACING="0" >
<tr class="titleTr">
<td class="titleTd">Ajouter des groupes ainsi que leurs possibilitées</td>
<td colspan="4"></td>
<td class="plusTd2 button"></td>
<td class="plusTd4 button"></td>
<td class="plusTd1 button"></td>
</tr>
<tr class="headingTr">
<td><center>Nom du groupe</center></td>
<td><center>Ajouter un capteur</center></td>
<td><center>Modifier un capteur</center></td>
<td><center>Supprimer un capteur</center></td>
<td><center>Ajouter un groupe</center></td>
<td><center>Modifier un groupe</center></td>
<td><center>Supprimer un groupe</center></td>
<td><center>Ajouter un utilisateur</center></td>
<td><center>Modifier un utilisateur</center></td>
<td><center>Supprimer un utilisateur</center></td>
</tr>
<tr id="sformadd">
<td><input type="text" name="nom[]" size="15" id="text0" value="" class="remplit" maxlength="20"><br></td>
<td><select name="ajouter_capt[]" id="ajouter_capt">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="modifier_capt[]" id="modifier_capt">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="supprimer_capt[]" id="supprimer_capt">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="ajouter_group[]" id="ajouter_group">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="modifier_group[]" id="modifier_group">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="supprimer_group[]" id="supprimer_group">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="ajouter_user[]" id="ajouter_user">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="modifier_user[]" id="modifier_user">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
<td><select name="supprimer_user[]" id="supprimer_user">
<option value="Oui">Oui</option>
<option value="Non">Non</option>
</select></td>
</tr>
</table>
</div>
</form>
Ce code fonctionne très bien :
Code : Tout sélectionner
if(!empty($_POST['nom']) ){
// pour CHAQUE LIGNE :
// on va ICI boucler sur l'array() "nom" :
foreach( $_POST['nom'] as $ii => $val )
{
// $ii est l'index de CETTE ligne de l'array $_POST['nom']
// comme CHAQUE array() contient le même nombre de valeurs, $ii est AUSSI l'index des autres array() pour CETTE ligne :
// pour CHAQUE champs : récupération des valeurs de la ligne + protection contre injection SQL !
if(isset($_POST['nom'])) $val_nom = mysql_real_escape_string($_POST['nom'][$ii]); // ou, ICI : mysql_real_escape_string($val);
else $val_nom="nom";
if(isset($_POST['ajouter_capt'])) $val_id = mysql_real_escape_string($_POST['ajouter_capt'][$ii]);
else $val_id="ajouter_capt";
if(isset($_POST['modif_capt'])) $val_type = mysql_real_escape_string($_POST['modif_capt'][$ii]);
else $val_type="modif_capt";
if(isset($_POST['supp_capt'])) $val_gr = mysql_real_escape_string($_POST['supp_capt'][$ii]);
else $val_gr="supp_capt";
if(isset($_POST['ajouter_group'])) $val_addgr = mysql_real_escape_string($_POST['ajouter_group'][$ii]);
else $val_gr="ajouter_group";
if(isset($_POST['modifier_group'])) $val_user = mysql_real_escape_string($_POST['modifier_group'][$ii]);
else $val_gr="modifier_group";
if(isset($_POST['supprimer_group'])) $val_user = mysql_real_escape_string($_POST['supprimer_group'][$ii]);
else $val_gr="supprimer_group";
if(isset($_POST['ajouter_user'])) $val_user = mysql_real_escape_string($_POST['ajouter_user'][$ii]);
else $val_gr="ajouter_user";
if(isset($_POST['modifier_user'])) $val_user = mysql_real_escape_string($_POST['modifier_user'][$ii]);
else $val_gr="modifier_user";
if(isset($_POST['supprimer_user'])) $val_user = mysql_real_escape_string($_POST['supprimer_user'][$ii]);
else $val_gr="supprimer_user";
// pour CETTE ligne, tous les champs sont obligatoires (doivent être remplis)
if(!empty($val_nom) ){
// pour CETTE ligne, on écrit la requête sql
$sql_insert = "INSERT INTO `permissions`
( `nom`, `ajouter_capt`, `modifier_capt`, `supp_capt`, `ajouter_gr`, `ajouter_user` )
VALUES
( '$val_nom', '$val_id', '$val_type', '$val_gr', '$val_addgr', '$val_user' )";
// pour CETTE ligne, on INSERE les informations du formulaire dans la table
mysql_query($sql_insert) or die('Erreur SQL !'.$sql_insert.'<br>'.mysql_error());
}
}
}
Code : Tout sélectionner
if(isset($_POST['Nom'])) // Si le formulaire a été validé, on peut effectuer les actions PHP
{
$nom = $_POST['Nom']; // Le nom du groupe
if( $_POST['ajouter_capt'] == 'ajouter_capt_oui') // Si dans le formulaire, on a indiqué que ce groupe pouvait ajouter un article...
{
$droits |= ajouter_capteur; // On ajoute la permission dans la variable $droits
}
## Mêmes actions ci-dessous avec Modifier un article et Supprimer un article ##
if( $_POST['modifier_capt'] == 'modifier_capt')
{
$droits |= modifier_capteur;
}
if( $_POST['supprimer_capt'] == 'supprimer_capt_oui')
{
$droits |= supprimer_capteur;
}
if( $_POST['ajouter_group'] == 'ajouter_group_oui')
{
$droits |= ajouter_groupe;
}
if( $_POST['modifier_group'] == 'modifier_group_oui')
{
$droits |= modifier_groupe;
}
if( $_POST['surpprimer_group'] == 'supprimer_group_oui')
{
$droits |= supprimer_groupe;
}
if( $_POST['ajouter_user'] == 'ajouter_user_oui')
{
$droits |= ajouter_user;
}
if( $_POST['modifier_user'] == 'modifier_user_oui')
{
$droits |= modifier_user;
}
if( $_POST['surpprimer_user'] == 'supprimer_user_oui')
{
$droits |= supprimer_user;
}
$requete = 'INSERT INTO permissions(nom, permissions)
VALUES ("'.$nom.'", "'.@$droits.'")'; // On prépare la requête, ça va ajouter les permissions stockées dans $droits, ainsi que le nom
$ex_requete = mysql_query($requete)or die(mysql_error()); // On exécute la requête ou on affiche une erreur
if($ex_requete) echo 'Le groupe a bien été ajouté !<br />'; // Si c'est OK, on affiche un message disant que c'est bon
else echo 'Le groupe n\'a pu être ajouté !<br />'; // Sinon, on en affiche un disant que ce n'est pas bon...
}
Voici le code PHP en entier :
Code : Tout sélectionner
if(isset($_POST['nom'])) // Si le formulaire a été validé, on peut effectuer les actions PHP
{
foreach( $_POST['nom'] as $ii => $val )
{
$nom = $_POST['nom']; // Le nom du groupe
if( $_POST['ajouter_capt'] == 'ajouter_capt_oui') // Si dans le formulaire, on a indiqué que ce groupe pouvait ajouter un article...
{
$droits |= ajouter_capteur; // On ajoute la permission dans la variable $droits
} ## Mêmes actions ci-dessous avec Modifier un article et Supprimer un article ##
if( $_POST['modifier_capt'] == 'modifier_capt')
{
$droits |= modifier_capteur;
}
if( $_POST['supprimer_capt'] == 'supprimer_capt_oui')
{
$droits |= supprimer_capteur;
}
if( $_POST['ajouter_group'] == 'ajouter_group_oui')
{
$droits |= ajouter_groupe;
}
if( $_POST['modifier_group'] == 'modifier_group_oui')
{
$droits |= modifier_groupe;
}
if( $_POST['surpprimer_group'] == 'supprimer_group_oui')
{
$droits |= supprimer_groupe;
}
if( $_POST['ajouter_user'] == 'ajouter_user_oui')
{
$droits |= ajouter_user;
}
if( $_POST['modifier_user'] == 'modifier_user_oui')
{
$droits |= modifier_user;
}
if( $_POST['surpprimer_user'] == 'supprimer_user_oui')
{
$droits |= supprimer_user;
}
$requete = 'INSERT INTO permissions(nom, permissions)
VALUES ("'.$nom.'", "'.@$droits.'")'; // On prépare la requête, ça va ajouter les permissions stockées dans $droits, ainsi que le nom
$ex_requete = mysql_query($requete)or die(mysql_error()); // On exécute la requête ou on affiche une erreur
if($ex_requete) echo 'Le groupe a bien été ajouté !<br />'; // Si c'est OK, on affiche un message disant que c'est bon
else echo 'Le groupe n\'a pu être ajouté !<br />'; // Sinon, on en affiche un disant que ce n'est pas bon...
}
// pour TOUTES LES lignes :
// on vérifie que les array() ne sont pas vides (qu'au moins UNE ligne du tableau soit remplie)
if(!empty($_POST['nom']) ){
// pour CHAQUE LIGNE :
// on va ICI boucler sur l'array() "nom" :
// $ii est l'index de CETTE ligne de l'array $_POST['nom']
// comme CHAQUE array() contient le même nombre de valeurs, $ii est AUSSI l'index des autres array() pour CETTE ligne :
// pour CHAQUE champs : récupération des valeurs de la ligne + protection contre injection SQL !
if(isset($_POST['nom'])) $val_nom = mysql_real_escape_string($_POST['nom'][$ii]); // ou, ICI : mysql_real_escape_string($val);
else $val_nom="nom";
if(isset($_POST['ajouter_capt'])) $val_id = mysql_real_escape_string($_POST['ajouter_capt'][$ii]);
else $val_id="ajouter_capt";
if(isset($_POST['modif_capt'])) $val_type = mysql_real_escape_string($_POST['modif_capt'][$ii]);
else $val_type="modif_capt";
if(isset($_POST['supp_capt'])) $val_gr = mysql_real_escape_string($_POST['supp_capt'][$ii]);
else $val_gr="supp_capt";
if(isset($_POST['ajouter_group'])) $val_addgr = mysql_real_escape_string($_POST['ajouter_group'][$ii]);
else $val_gr="ajouter_group";
if(isset($_POST['modifier_group'])) $val_user = mysql_real_escape_string($_POST['modifier_group'][$ii]);
else $val_gr="modifier_group";
if(isset($_POST['supprimer_group'])) $val_user = mysql_real_escape_string($_POST['supprimer_group'][$ii]);
else $val_gr="supprimer_group";
if(isset($_POST['ajouter_user'])) $val_user = mysql_real_escape_string($_POST['ajouter_user'][$ii]);
else $val_gr="ajouter_user";
if(isset($_POST['modifier_user'])) $val_user = mysql_real_escape_string($_POST['modifier_user'][$ii]);
else $val_gr="modifier_user";
if(isset($_POST['supprimer_user'])) $val_user = mysql_real_escape_string($_POST['supprimer_user'][$ii]);
else $val_gr="supprimer_user";
// pour CETTE ligne, tous les champs sont obligatoires (doivent être remplis)
if(!empty($val_nom) ){
// pour CETTE ligne, on écrit la requête sql
$sql_insert = "INSERT INTO `permissions`
( `nom`, `ajouter_capt`, `modifier_capt`, `supp_capt`, `ajouter_gr`, `ajouter_user` )
VALUES
( '$val_nom', '$val_id', '$val_type', '$val_gr', '$val_addgr', '$val_user' )";
// pour CETTE ligne, on INSERE les informations du formulaire dans la table
mysql_query($sql_insert) or die('Erreur SQL !'.$sql_insert.'<br>'.mysql_error());
}
}
}
?>
Code : Tout sélectionner
if(isset($_POST['ajouter_group'] == 'ajouter_capt_oui')) $val_addgr = mysql_real_escape_string($_POST['ajouter_group'][$ii]);
else $val_gr="ajouter_group";
Merci pour votre aide !