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 :
Mon code est le suivant :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
Formulaire :
Traiement du formulaire :
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 <?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>'; ?>
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 <?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.
Partager