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

PHP & Base de données Discussion :

Ajouter un test


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut Ajouter un test
    salut,

    le script suivant est exécuté avec succès
    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
    <?php
     
    $db=mysql_connect('localhost','root','root') or die("conection errone");
    mysql_select_db('glpi',$db) or die("erreur");
     
    $qu=("delete ancienhardware from ancienhardware inner join drives using (HARDWARE_ID,LETTER)");
    $resu=mysql_query($qu) ;
     
    $query=("INSERT INTO affichev
    SELECT LETTER,TYPE, SSN,name, completename,LASTDATE
    FROM  OCSWEB.bios
    INNER JOIN OCSWEB.hardware ON OCSWEB.bios.hardware_id
     = OCSWEB.hardware.ID 
    INNER JOIN OCSWEB.ancienhardware ON OCSWEB.bios.hardware_id = OCSWEB.ancienhardware.hardware_id
    INNER JOIN GLPI.glpi_computers ON OCSWEB.bios.SSN = GLPI.glpi_computers.serial
    INNER JOIN GLPI.glpi_dropdown_locations ON GLPI.glpi_computers.location = GLPI.glpi_dropdown_locations.ID");
     
    $result=mysql_query($query) ;
     
    $resultat=mysql_query("SELECT LETTER,TYPE,SSN,name,completename,LASTDATE FROM affichev");
    echo '<table>';
    echo '<tr><th>LETTER</th><th>TYPE</th><th>SSN</th><th>name</th><th>Lieu</th><th>LASTDATE</th></tr>';
    while ($ligne=mysql_fetch_array($resultat)){
    	echo '<tr><td>'.$ligne[LETTER].'</td><td>'.$ligne[TYPE].'</td><td>'.$ligne[SSN].'</td>
    <td>'.$ligne[name].'</td><td>'.$ligne[completename].'</td><td>'.$ligne[LASTDATE].'</td></tr>';
    }
    echo '</table>';
    mysql_close();
     
     
    ?>
    J'explique le script :

    je fais une requête qui fait la comparaison entre deux tables "ancienhardware" et "drivers"


    j'insère dans la table "affichev" des éléments (LETTER,TYPE, SSN,name, completename,LASTDATE)
    que je dois récupérer des plusieurs tables ainsi de deux bases "glpi" et "ocsweb"

    enfin j'affiche ces éléments (LETTER,TYPE, SSN,name, completename,LASTDATE)
    qui sont stokés dans la table "affichev" dans un tableau


    je veux mettre une condition à ce script
    la condition est reliée à la table "affichev"

    comme je dis mon script fait comparaison ensuite remplissage de la table "affichev"
    enfin affichage des éléments de la table "affichev"

    la condition est la suivante après remplissage de la table "affichev"
    et avant l'affichage je dois tester la table "affichev" si elle contient des éléments
    donc j'affiche ses éléments si non j'affiche un message qui est "pas d'élément à afficher"

    la solution doit être comme suit;
    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
    <?php
     
    $db=mysql_connect('localhost','root','root') or die("conection errone");
    mysql_select_db('glpi',$db) or die("erreur");
     
    $qu=("delete ancienhardware from ancienhardware inner join drives using (HARDWARE_ID,LETTER)");
    $resu=mysql_query($qu) ;
     
    $query=("INSERT INTO affichev
    SELECT LETTER,TYPE, SSN,name, completename,LASTDATE
    FROM  OCSWEB.bios
    INNER JOIN OCSWEB.hardware ON OCSWEB.bios.hardware_id
     = OCSWEB.hardware.ID 
    INNER JOIN OCSWEB.ancienhardware ON OCSWEB.bios.hardware_id = OCSWEB.ancienhardware.hardware_id
    INNER JOIN GLPI.glpi_computers ON OCSWEB.bios.SSN = GLPI.glpi_computers.serial
    INNER JOIN GLPI.glpi_dropdown_locations ON GLPI.glpi_computers.location = GLPI.glpi_dropdown_locations.ID");
     
    $result=mysql_query($query) ;
     
    if (.....)//la table affichev contient des elements
     
    $resultat=mysql_query("SELECT LETTER,TYPE,SSN,name,completename,LASTDATE FROM affichev");
    echo '<table>';
    echo '<tr><th>LETTER</th><th>TYPE</th><th>SSN</th><th>name</th><th>Lieu</th><th>LASTDATE</th></tr>';
    while ($ligne=mysql_fetch_array($resultat)){
    	echo '<tr><td>'.$ligne[LETTER].'</td><td>'.$ligne[TYPE].'</td><td>'.$ligne[SSN].'</td>
    <td>'.$ligne[name].'</td><td>'.$ligne[completename].'</td><td>'.$ligne[LASTDATE].'</td></tr>';
    }
    echo '</table>';
     
    else 
     
    echo"pas d'element a afficher";
     
    mysql_close();
     
     
    ?>
    je veux savoir comment mettre ce test dans mon script



    merci d'avance

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Bonjour,

    Ta question n'est pas vraiment claire...

    Ce que je peux te proposer est de mettre ton code dans une fonction php et ensuite de faire l'appel à cette fonction dans une conditionnelle.

    Tu auras ainsi la possibilité de choisir le comportement selon la réussite ou l'échec de ton test.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 291
    Par défaut
    Bonjour,

    effectivement, c'est à moitié clair, mais il faut dire que tes requêtes sont complexes.
    Il faut bien penser à commenter ton code en allant aussi, çà nous aurais aidé, j'ai commencé à commenter ton code.
    Vois en rouge ce que tu souhaitais je pense, sinon dis moi ce que tu voulais.

    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
     
    <?php
    //connexion à la BD 
    $db=mysql_connect('localhost','root','root') or die("conection errone");
    mysql_select_db('glpi',$db) or die("erreur");
    //effacement dans la table ancienhardware, des enregistrements existant dans la tables drives (drivers plutôt) 
    //critères de jointures : HARDWARE_ID, LETTER
    $qu=("delete ancienhardware from ancienhardware inner join drives using (HARDWARE_ID,LETTER)");
    $resu=mysql_query($qu) ;
    //requête d'insertion dans la table affichedev Suite à des conditions de jointure multiple
    $query=("INSERT INTO affichev
    SELECT LETTER,TYPE, SSN,name, completename,LASTDATE
    FROM  OCSWEB.bios
    INNER JOIN OCSWEB.hardware ON OCSWEB.bios.hardware_id
     = OCSWEB.hardware.ID 
    INNER JOIN OCSWEB.ancienhardware ON OCSWEB.bios.hardware_id = OCSWEB.ancienhardware.hardware_id
    INNER JOIN GLPI.glpi_computers ON OCSWEB.bios.SSN = GLPI.glpi_computers.serial
    INNER JOIN GLPI.glpi_dropdown_locations ON GLPI.glpi_computers.location = GLPI.glpi_dropdown_locations.ID");
    //exécution de la requête d'insertion dans la table affichedev 
    $result=mysql_query($query) ;
    //stockage de l'exécution de la requête d'affichage des enregistrements de la table affichedev
    $resultat=mysql_query("SELECT LETTER,TYPE,SSN,name,completename,LASTDATE FROM affichev"); 
    if (mysql_num_rows($resultat)) {//la table affichev contient des elements
     
    echo '<table>';
    echo '<tr><th>LETTER</th><th>TYPE</th><th>SSN</th><th>name</th><th>Lieu</th><th>LASTDATE</th></tr>';
    while ($ligne=mysql_fetch_array($resultat)){
    	echo '<tr><td>'.$ligne[LETTER].'</td><td>'.$ligne[TYPE].'</td><td>'.$ligne[SSN].'</td>
    <td>'.$ligne[name].'</td><td>'.$ligne[completename].'</td><td>'.$ligne[LASTDATE].'</td></tr>';
    }
    echo '</table>';
    } 
    else 
     
    echo"pas d'element a afficher";
     
    mysql_close();
    ?>

Discussions similaires

  1. requête d'ajout avec test
    Par pasb71 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/05/2011, 14h38
  2. ajout de test avant l'envoi
    Par mdh12 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/05/2010, 16h36
  3. Ajouter un test à mon blog dotclear
    Par kciope dans le forum Langage
    Réponses: 2
    Dernier message: 18/11/2008, 21h31
  4. boost test : comment ajouter du code au main ?
    Par ch4mp dans le forum Boost
    Réponses: 2
    Dernier message: 15/02/2008, 13h59
  5. TRIGGER (test avant ajout) ne fonctionne pas correctement
    Par marcusien dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2007, 18h02

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