2 pièce(s) jointe(s)
Insertion checkbox multiples en ligne dans ma base.
Bonjour,
Je réalise un site web en interne permettant de referencer mes applications et mes serveurs. Pour savoir quel(s) serveur(s) héberge quelle appli(s) et quelle(s) appli(s) est hébergée sur quel(s) serveur(s).
Jusque la rien de compliqué.
J'ai un formulaire pour creer une nouvelle application.
Cette application peut etre installée sur un ou plusieurs serveurs et correspondre à plusieurs envirronnements.
Ex je creer l'application APPTEST cf capture d'écran 1
je vais la lier à un ou plusieurs serveurs.
APPTEST
Est installée sur le serveur FRPIVSRV0720 et c'est de la production.
Elle est installée sur FRPIVSRV1563 et c'est de la recette
Juste que la pas de problème, ca enregistre bien dans ma table HOST
ID_APP ID_ENV ID_SERVER
21 1 1
21 4 3
les infos que je veux sont bien enregistrées dans la base. Mon appli APPTEST ayant pour ID (21) est en production (1) sur le serveur (1) et en recette (4) sur le serveur (3).
Maintenant ce que je voudrais faire c'est associer une appli à plusieurs envirronnements sur le meme serveur.
EX appli : APPTEST2 est installée sur le SERVEUR FRPIVSRV0720 et c'est à la fois de la production et de la recette et du developpement.
Ce qui donne FRPIVSRV0720 et les 3 checkboxs cochées
cf capture 2.
Comment faire pour que ca donne ca :
ID_APP ID_ENV ID_SERVER
22 1 1
22 4 1
22 5 1
Actuellement ca me donne ca :
22 1 1
22 4 0
22 5 0
avec l'erreur suivante :
Citation:
Notice: Undefined offset: 1 in /var/www/html/cmdb/test1.php on line 38 Notice: Undefined offset: 2 in /var/www/html/cmdb/test1.php on line 38
Mon code est le suivant :
Formulaire :
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
|
<?php
// database connect infos
include "config.php";
echo '<form method="post" action="test1.php">';
echo 'Nom : <br> <input type="text" name="NAME_APP" style="text-transform: uppercase"/><br/>';
// database connect
$connect = mysql_connect("$serveur","$login","$pass");
mysql_select_db("$bd",$connect);
// Select query pour ma liste de serveurs
$sql = ("SELECT * FROM SERVER");
$query=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while ($result = mysql_fetch_assoc($query))
{
// affichage des noms de serveurs en checkbox
echo "<INPUT TYPE=checkbox NAME=CHECK_SERVER[] value=".$result["ID_SERVER"].">".$result["NAME_SERVER"]."";
// Select query pour ma liste d'environnements
$sql3 = ("SELECT * FROM ENV");
$query3=mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while ($result3 = mysql_fetch_assoc($query3))
{
echo "<INPUT TYPE=checkbox NAME=CHECK_ENV[] value=".$result3["ID_ENV"].">".$result3["NAME_ENV"]."";
}
echo '<br />';
echo '</div>';
echo '<br />';
}
echo '<input type="submit" value="Valider" />';
echo '</form>';
?> |
Traiement du formulaire :
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
|
<?php
include "config.php";
// database connect
$connect = mysql_connect("$serveur","$login","$pass");
mysql_select_db("$bd",$connect);
$NAME_APP = $_POST['NAME_APP'];
$ID_SERVER = $_POST['CHECK_SERVER'];
$ID_ENV = $_POST['CHECK_ENV'];
//insertion table APPLICATION
$sql1 = ("INSERT INTO APPLICATION (NAME_APP) VALUES('$NAME_APP')");
$res1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
//recupération du dernier id généré pour reutilisation apres
$ID_APP = mysql_insert_id();
echo $NAME_APP;
echo $ID_APP;
foreach($ID_ENV AS $checkbox => $value)
{
$sql4 = ("INSERT INTO HOST VALUES('$ID_APP','".$ID_ENV[$checkbox]."','".$ID_SERVER[$checkbox]."')");
$res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
}
?> |
A mon avis ce qui cloche est juste dans la boucle foreach mais comment faire svp ??
Merci d'avance.