Je viens de me replonger dans le PHP (et le SQL surtout) pour une petite appli, mon code est bon mais je pense que je peux le faire beaucoup plus simplement.
J'utilise le modèle MCV, voilà mes parties :
Vue :
Controle :
Code html : 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 <form method="post" action="index.php"> <fieldset> <input type="hidden" name="Logiciel" value="<?php echo $codeLogi; ?>" /> <legend>Salle ou le logiciel n'est pas installé</legend><br /> <?php if (tabVide($lesSallesAll)){ echo "N° salle Nb postes Installer<br /><br />\n"; foreach ($lesSallesAll as $laSalle) { echo "".$laSalle['num']."\n"; echo "".$laSalle['nbPostes']."\n"; echo "<input type=\"checkbox\" name=\"InstallerSalle[]\" value=\"".$laSalle['num']."\" /><br />\n"; echo "<br />\n"; } } else{ echo "Toute les salles sont équipées du logiciel de code ".$codeLogi; } ?> </fieldset><p></p> <fieldset> <legend>Salle ou le logiciel est installé</legend><br /> <?php if (tabVide($lesSalles)){ echo "N° salle Nb postes Installer<br /><br />\n"; foreach ($lesSalles as $laSalle) { echo "".$laSalle['num']."\n"; echo "".$laSalle['nbPostes']."\n"; echo "<input type=\"checkbox\" name=\"DesinstallerSalle[]\" value=\"".$laSalle['num']."\" /><br />\n"; echo "<br />\n"; } } else{ echo "Il n'y a aucune salle avec le logiciel de code ".$codeLogi; } ?> </fieldset> <p><br /> <input type="submit" value="Valider" /> </p> </form>
Modèle :
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 //Installer des logiciels if (isset($_POST["InstallerSalle"])){ $tabInstall = $_POST["InstallerSalle"]; $codeLogi = $_POST["Logiciel"]; foreach ($tabInstall as $tab){ installerLogiciel($connexion, $tab, $codeLogi); } } //Desinstaller des logiciels if (isset($_POST["DesinstallerSalle"])){ $tabDesinstall = $_POST["DesinstallerSalle"]; $codeLogi = $_POST["Logiciel"]; foreach ($tabDesinstall as $tab){ desinstallerLogiciel($connexion, $tab, $codeLogi); } }
Je pense qu'il est assez simplifiable mais c'est la première fois que j'utilise le modèle MCV et le retour au PHP est assez laborieux.
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 // void installerLogiciel($idConnexion, $tab, $codeLogi) // Installe le logiciel dans la bdd en fonction de la salle function installerLogiciel($idConnexion, $tab, $codeLogi){ $req = "SELECT * FROM Installer WHERE numsalle='".$tab."' AND codeLogiciel='".$codeLogi."'"; $jeuResultat=mysql_query($req, $idConnexion); if($jeuResultat){ $req="INSERT INTO `Installer` (`numSalle` ,`codeLogiciel`)VALUES ('".$tab."', '".$codeLogi."')"; mysql_query($req, $idConnexion); } mysql_free_result($jeuResultat); } // void desinstallerLogiciel($idConnexion, $tab, $codeLogi) // Desinstalle le logiciel dans la bdd en fonction de la salle function desinstallerLogiciel($idConnexion, $tab, $codeLogi){ $req = "SELECT * FROM Installer WHERE numsalle='".$tab."' AND codeLogiciel='".$codeLogi."'"; $jeuResultat=mysql_query($req, $idConnexion); if($jeuResultat){ $req="DELETE FROM Installer WHERE numSalle = '".$tab."' AND codeLogiciel = '".$codeLogi."'"; mysql_query($req, $idConnexion); } mysql_free_result($jeuResultat); }
De plus, j'aurai aimé pouvoir faire en sorte que les logiciels installés soient, par défaut, checker dans le checkbox et c'est en les decheckant qu'il se désintalleraient (là, il sont vide et il faut les checker pour les désintallé, comme pour ceux à installé).
Merci![]()
Partager