[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. 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
    1. Bonjour,

      oui il n'y a pas de soucis. Ton code ne fonctionne pas ?
      0
      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
        0
        1. essaye =="1"
          peut être c'est enregistré en tant que chaîne dans votre BD
          0
          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

            0
            1. 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" ?
              0
              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 ?
                0
            2. 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
              0
              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.
                0
            3. Un conseil sinon: évite les SELECT *, mets plutôt les champs de ton choix (question de performance et de bonnes habitudes de programmation).
              0
              1. Un conseil sinon: évite les SELECT *, mets plutôt les champs de ton choix (question de performance et de bonnes habitudes de programmation).
                0
                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/
                  0