Bonjour,

J'ai réalisé un site en php pour recenser les applications et les serveurs de ma société :

J'ai deux pages add_application.php (formulaire) et add_application_ok.php (traitement des données de mon formulaire)

Lorsque je creer une application je peux l'associer à un ou plusieurs serveurs et définir un envirronnement. Jusque la pas de problème.

cf capture d'écran.

add_application.php (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
45
46
47
48
49
 
echo '<form method="post" action="add_application_ok.php">';
echo 'Nom : <br> <input type="text" name="NAME_APP" style="text-transform: uppercase"/><br/>';
 
// -----------------------[CHECKBOX + REQUETE MYSQL]-----------------------
echo '<fieldset>';
echo '<legend>Lier l\'application à un serveur (Par défaut AUCUN) : </legend>';
 
// 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 '<div class="infoframe">';
        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 '</fieldset>';	
 
 
// -----------------------[CHECKBOX + REQUETE MYSQL]-----------------------
 
echo '<input type="submit" value="Valider" />';
echo '</form>';
add_application_ok.php (traitement des données de mon 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
 
<?php 
//Recuperation valeurs formulaire
$NAME_APP = $_POST['NAME_APP'];
 
// database connect infos
include "config.php";
 
// database connect
$connect = mysql_connect("$serveur","$login","$pass"); 
mysql_select_db("$bd",$connect);
?>
 
//insertion table APPLICATION
$sql1 = ("INSERT INTO APPLICATION (NAME_APP, DESC_APP, DOC_APP, COM_APP, CODE_APP, DATE_APP, IP_REQ_APP) VALUES('$NAME_APP','$DESC_APP', '$DOC_APP', '$COM_APP', '$CODE_APP', '$datetime', '$IP_REQ_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();
 
foreach(
$_POST['CHECK_SERVER'] AS $checkbox1)
 
	{
$sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$ID_ENV','$checkbox1')");
$res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
 
	}
Si je coche q'un seul serveur et je lui associe un environnement, pas de problème je peux inserer les données dans ma table :

ID_APP ID_ENV ID_SERVER

Ex cf capture d'écran :

Je selectione le serveur FRPIVSRV0720 et je l'associe à l'envirronnemnt de PRODUCTION.

avec mon foreach

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
foreach(
$_POST['CHECK_SERVER'] AS $checkbox1)
 
	{
$sql4 = ("INSERT INTO LOCATION VALUES('$ID_APP','$ID_ENV','$checkbox1')");
$res4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
 
	}
Maintenant comment faire si je veux associer l'application XXX a plusieurs serveurs ?

ex :

FRPIVSRV0720 envirronnement de PRODUCTION.

FRPIVSRV1563 envirronnement de RECETTE.

Ca ne fonctionne pas ...

Merci d'avance pour votre aide.