[PHP] If avec variable SQL

Bonjour,

je ne sais pas si mon titre est clair , mais en gros je voudrais savoir deja si c est possible et apres comment ^^

donc je souhaite développer une page PhP regroupant plusieur info venant de differente table SQL

voici mon code commenté

[quote]<?php
mysql_connect("localhost", "root", ""); //log de connexion a serveur SQL
mysql_select_db("GLPI"); //choix de la BDD
$reponse = mysql_query("SELECT * FROM glpi_computers ORDER BY domain")or die(mysql_error()); //choix de la table

while ($donnees = mysql_fetch_array($reponse) ) //$donnees recupere toute les info de la table
{
?>
<p>
<strong>Nom du Poste</strong> : <?php echo $donnees['name']; // affiche le nom du poste ?><br />
<strong> OS </strong> : <?php
if ($donnees['OS'] == 0) //recupere l ID de l OS installé sur le poste
{
echo Windows_2000 ; // si ID=0 c est win2000 etc....
}
?><br />

<?php echo $donnees['os'];?>

</p>

<?php
}

mysql_close(); // Déconnexion de MySQL
?>
/quote
Configuration: Windows 2000
Firefox 3.0.10

12 réponses

  1. <?php
    mysql_connect("localhost", "root", ""); //log de connexion a serveur SQL
    mysql_select_db("GLPI"); //choix de la BDD
    $reponse = mysql_query("SELECT * FROM glpi_computers ORDER BY domain")or die(mysql_error()); //choix de la table

    while ($donnees = mysql_fetch_array($reponse) ) //$donnees recupere toute les info de la table
    {
    ?>
    <p>
    <strong>Nom du Poste</strong> : <?php echo $donnees['name']; // affiche le nom du poste ?><br />
    <strong> OS </strong> : <?php $osid = $donnees['os']; //donne a $os l ID de l'OS du poste ?>
    <?php
    if ($osid > 0 )
    {
    $os = mysql_query("SELECT name FROM glpi_dropdown_os") or die(mysql_error()); // recherhe dans la table des OS
    while( $donneesos = mysql_fetch_array($os) )
    {
    echo $donneesos['name']; // affiche le nom de l OS
    }
    }
    ?><strong><?php echo $osid; ?><br /></strong>
    <strong>Domaine</strong> : <?php $domaineid = $donnees['domain']; // fait de meme avec le nom de domaine
    echo $domaineid; ?>

    </p>

    <?php

    }

    mysql_close(); // Déconnexion de MySQL
    ?>

    voici ce que ca donne
    https://imageshack.com/
    1. Un conseil sinon: évite les SELECT *, mets plutôt les champs de ton choix (question de performance et de bonnes habitudes de programmation).
      1. Un conseil sinon: évite les SELECT *, mets plutôt les champs de ton choix (question de performance et de bonnes habitudes de programmation).
        1. ba je debute en PhP donc je posait la question vu que je vais testé mais comme cela ne va pas marché du 1er coup bien évidement la je suis sur que c est possible et que l erreur viens de moi
          1. Si tu as encore l'exemple sous la main et qu'il n'est pas trop long, mets-le ici, on verra peut-être ce qui n'allait pas.
        2. Ha mais quel boulet je fait, une aprem de prise de tete pour une erreur toute simple , c été bien les MAJ.

          une simple relecture par un autre suffit a le voir, merci beaucoup

          peut on faire une requete SQL vers une autre table a l intérieure du "if" ?
          1. peut on faire une requete SQL vers une autre table a l intérieure du "if"
            Bien sûr que oui. Tu fais des requêtes où tu veux, quand tu veux, où es-tu allé chercher qu'il y avait des restrictions ?
        3. bonjour

          $donnees['os'] et $donnees['OS'] sont deux variables différentes

          au passage, echo "Windows_2000"; et non pas echo Windows_2000;
          (sauf si tu as effectivement défini une constante avec define ("Windows_2000","Windows_2000");
          1. non cela ne change rien, ce que je n arrive pas a comprendre c est pourquoi la variable $donnees me donne bien 1 quand elle s affiche avec un simple echo alors qu elle n est pas "==1" dans la condition IF

            si sa peut aidée j explique le lien avec la BDD

            donc j ai une BDD avec tout plein de table , rien de plus normale en fait

            4 table m interresse ,

            la 1er qui répertorie les PC du parc ( ID name os serial location domain network model etc ...)
            sur celle ci je ne m intéresse juste au nom et domaine
            -le nom est donné en charactere donc pas de souci
            -le domaine et donnée par un chiffre qui renvoie sur l ID d une autre table ou sont renseigné les different domaine
            -c est exactement le meme chose pour les OS

            et c est la même chose pour ce qui est des logiciel ID poste a tels ou tels ID software d installé et je doit mettre tout ceci en commum pour avoir un beau tableau ou l ont poura simplement tout ceci

            j espère avoir été assé clair

            merci pour votre aide

            1. essaye =="1"
              peut être c'est enregistré en tant que chaîne dans votre BD
              1. j ai envoyé le message non complet, mauvais clique entre envoyer et prévu

                donc en fait mon code fonctionne mais pas comme je le souhaiterais ce qui veut dire que j ai une erreur

                car en resultat j ai ca

                Nom du Poste : test
                OS : Windows_2000
                1

                Nom du Poste : TESTLGLPI
                OS : Windows_2000
                1

                ce qui n est pas logique quand je lui demande d afficher la variable il me dit qu elle vaut "1" alors qu il prend bien le IF qui est pour une valeur de zero

                dans ma BDD l ID OS est de "1" ce qui veut dire qu il m affiche la bonne valeur mais pour le If cela reste un mystere car lorsque je met ==1 cela ne m affiche plus rien

                le IF n est qu un test car par la suitre le voudrais que cette variable soit utiliser pour recupéré le Nom grace a une autre Table