IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[HTML/PHP] Simplification de mon code


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Points : 61
    Points
    61
    Par défaut [HTML/PHP] Simplification de mon code
    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 :

    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>
    Controle :

    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);
                        }
                    }
    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
    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);
    }
    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.

    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

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Si je comprends bien, tu veux une seule liste où une case cochée correspond à intaller (ou conserver) et une case décochée correspond à désinstaller (ou ne pas installer), les case étant préalablement cochées en fonction de ce qui est installé. c'est bien ça ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    Exactement

Discussions similaires

  1. [JpGraph] Appel page .php, mon code jpgraph, via page .html
    Par rudylar dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 30/06/2008, 15h44
  2. Réponses: 1
    Dernier message: 21/11/2007, 09h04
  3. [MySQL] Séparer mon code PHP du code HTML
    Par cdevl32 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/11/2007, 21h30
  4. Simplification de mon code?
    Par totoc1001 dans le forum MATLAB
    Réponses: 6
    Dernier message: 31/01/2007, 16h50
  5. [VBA-E] Aide pour simplification de mon code.
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/05/2006, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo