Probleme requête PHP et SQL

starrage Messages postés 16 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
Je suis en train de créer un programme pour gérer un planning concernant chantier /personnel.
Jusque là j'ai réussi à me débrouiller tout seul concernant l'ajout de variable à la base de données / modification et suprresion..
Voici le code concerné:

<td><select multiple name="ouvrier[]">
<?php
require_once('connexion.php');
$requete="SELECT * FROM personnel";
if ($result=mysql_query($requete)) {
while($ligne=mysql_fetch_row($result)) {
$id=$ligne[0];
$nom=$ligne[7];
echo"<option> $nom </option>";
}
}else{
die(bug);
}
?></select>
</td>

Donc d'après ce code les ouvriers s'affichent en select multiple et cela marche, je souhaitera maintenant rajouter à echo"<option> $nom </option>"; une requête pour que le background de la personne en question s'afficher en rouge s'il est déjà affecté à >=7h de travail dans la journée et en vert à moins de 7h.
J'ai une autre table qui prend en compte le nombre d'heures aux quelles a été affecté l'ouvrier durant cette journée intitulée "planning".
Quelqu'un pourrai me dire si c'est possible de mettre ces deux tables en relation pour pouvoir afficher une couleur sans que la boucle while ne bug ? et de quelle manière je dois procéder ?

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonsoir, une solution

    <head>
    
    
    <style type="text/css">
    .rouge {
    	background-color:red;
    }
    .vert {
    	background-color:green;
    }
    .noir {
    	background-color:black;
    }
    <style>
    </head>
    
    <td><select multiple name="ouvrier">
    <?php
    require_once('connexion.php');
    $requete="SELECT * FROM personnel";
    if ($result=mysql_query($requete)) {
    while($ligne=mysql_fetch_row($result)) {
    	$id=$ligne[0];
    	$nom=$ligne[7];
    	$heure_affect=$ligne[x]; //remplace x par le champ qui contient l'affectation en heures
    	if($heure_affect >=7){
    		$classe="rouge";
    	}elseif($heure_affect >0 && $heure_affect <7){
    		$classe="vert";
    	}else{
    		$classe="noir";
    	}
    
    	echo '<option value="'.$id.'" class="'.$classe.'">'.$nom.'</option>'; //il faut obligatoirement value=
    	
    	}
    }else{
    die(bug);
    }
    ?></select>
    </td>
    
    0
    1. starrage Messages postés 16 Statut Membre
       
      Merci pour cette réponse, j'ai modifié mon code ! Mais maintenant la page s'affiche blanche... J'ai beau chercher je ne trouve pas l'erreur...
      Voici mon code :
      La page s'affichait bien avant que je modifie, manquerai-t-il quelque chose ?
      Merci d'avance.

      <html>
      <head>
      <title>Nouvel Évènement 2</title>
      <style type="text/css">
      .rouge {
      background-color:red;
      }
      .vert {
      background-color:green;
      }
      .noir {
      background-color:black;
      }
      <style>
      </head>
      <body style="background-color:#E3CE41">
      <form action="planning2.php" method="POST" target=BLANK><table border="0" align='center'>
      <tr><td align='center'><select name="jour"><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option>
      <option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option>
      <option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option>
      <option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option></select><select name="mois"><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option>
      <option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option></select><select name="annee"><option>2013</option><option>2014</option><option>2015</option><option>2016</option></select>
      <input type="submit" value="GO!"></td></tr></form></table><br><br>
      <?php
      $j=$_POST['jour'];
      $m=$_POST['mois'];
      $a=$_POST['annee'];
      $chantier=$_POST['chantier'];
      $h=$_POST['h'];
      $plage=$_POST['plage'];
      $s="/";
      $date="$j$s$m$s$a";
      ?>
      <form action="enregistrer_nouveau1.php" method="POST">
      <table border="0" width="35%" style="background-color:grey;"cellpadding="4" cellspacing="6" align="center">
      <caption style="background-color:red;">Nouveau</caption
      <tr>
      <td>Commune</td>
      <?php
      require_once('connexion.php');
      $requete="SELECT * FROM chantiers";
      if ($result=mysql_query($requete)) {
      while($ligne=mysql_fetch_row($result)) {
      $id=$ligne[0];
      $commune=$ligne[1];
      $travaux=$ligne[3];
      echo"<td>$commune</td></tr><tr><td>Travaux</td><td>$travaux</td></tr>";
      }
      }else{
      die(bug);
      }
      if($plage==12) {
      echo"<tr><td>Début:</td>
      <td><select name='plaged'><option>08</option><option>10</option><option>12</option><option>14</option><option>16</option></select>h.</td>
      <td>Fin</td>
      <td><select name='plagef'><option>10</option><option>12</option><option>14</option><option>16</option><option>18</option></select>h.</td></tr>";
      }
      if($plage==24) {
      echo"<tr><td>Début:</td>
      <td><select name='plaged'><option>08</option><option>10</option><option>12</option><option>14</option><option>16</option><option>18</option><option>20</option><option>22</option><option>24</option><option value='26'>02</option><option value='28'>04</option><option value='30'>06</select>h.</td>
      <td>Fin</td>
      <td><select name='plagef'><option>10</option><option>12</option><option>14</option><option>16</option><option>18</option><option>20</option><option>22</option><option>24</option><option value='26'>02</option><option value='28'>04</option><option value='30'>06</option><option value='32'>08</select>h.</td></tr>";
      }
      ?>
      <tr>
      <td>Personnel
      </td>
      <td><select multiple name="ouvrier[]">
      <?php
      require_once('connexion.php');
      $requete="SELECT * FROM ouvriers";
      if ($result=mysql_query($requete)) {
      while($ligne=mysql_fetch_row($result)) {
      $id=$ligne[0];
      $nom=$ligne[8];
      $heure_affect=$ligne[9];
      if($heure_affect >=7){
      $classe="rouge";
      }elseif($heure_affect >0 && $heure_affect <7){
      $classe="vert";
      }else{
      $classe="noir";
      }
      echo"<option value='.$id.' class='.classe.'> '.$nom.' </option>";
      }
      }else{
      die(bug);
      }
      ?></select>
      </td>
      <td colspan="2">"Maj ou ctrl" pour séléctions multiples.</td>
      </tr>
      </table>
      <table width="20%" align="center" border="0">
      <tr>
      <td align='center'><input type="submit" value="Enregistrer"><input type="reset" value="Reset"></td>
      <?php
      echo "<textarea style='display:none;' name='chantier'>$chantier</textarea><textarea style='display:none;' name='h'>$h</textarea><textarea style='display:none;' name='date'>$date</textarea>";
      ?>
      </form>
      </tr>
      </form></table>

      </body>
      </html>
      0
    2. starrage Messages postés 16 Statut Membre
       
      j'ai trouvé l'erreur et la page s'affiche mais cela ne marche pas au niveau de la modification, cela m'affiche:
      -Undefined offset: 9 on line 73
      -Undefined variable: classe on line 80
      voici le code avec les lignes numérotées:

      66 <?php
      67 require_once('connexion.php');
      68 $requete="SELECT * FROM ouvriers";
      69 if ($result=mysql_query($requete)) {
      70 while($ligne=mysql_fetch_row($result)) {
      71 $id=$ligne[0];
      72 $nom=$ligne[8];
      73 $heure_affect=$ligne[9];
      74 if($heure_affect >=7){
      75 $classe="rouge";
      76
      77 }elseif($heure_affect >0 && $heure_affect <7){
      78 $classe="vert";
      79 }
      80 echo"<option value='.$id.' class='.$classe.'> '.$nom.' </option>";
      81 }
      82 }else{
      83 die(bug);
      84 }
      85 ?>
      0
    3. starrage Messages postés 16 Statut Membre
       
      j'ai réussis à régler le problème de l'offset en cherchant un peu...
      Mais le problème de Undefined variable: classe on line 80
      Je ne comprend pas..
      0
  2. starrage Messages postés 16 Statut Membre
     
    Merci pour cette réponse, j'ai modifié mon code ! Mais maintenant la page s'affiche blanche... J'ai beau chercher je ne trouve pas l'erreur...
    Voici mon code :
    La page s'affichait bien avant que je modifie, manquerai-t-il quelque chose ?
    Merci d'avance.

    <html>
    <head>
    <title>Nouvel Évènement 2</title>
    <style type="text/css">
    .rouge {
    background-color:red;
    }
    .vert {
    background-color:green;
    }
    .noir {
    background-color:black;
    }
    <style>
    </head>
    <body style="background-color:#E3CE41">
    <form action="planning2.php" method="POST" target=BLANK><table border="0" align='center'>
    <tr><td align='center'><select name="jour"><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option>
    <option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option>
    <option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option>
    <option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option></select><select name="mois"><option>01</option><option>02</option><option>03</option><option>04</option><option>05</option><option>06</option>
    <option>07</option><option>08</option><option>09</option><option>10</option><option>11</option><option>12</option></select><select name="annee"><option>2013</option><option>2014</option><option>2015</option><option>2016</option></select>
    <input type="submit" value="GO!"></td></tr></form></table><br><br>
    <?php
    $j=$_POST['jour'];
    $m=$_POST['mois'];
    $a=$_POST['annee'];
    $chantier=$_POST['chantier'];
    $h=$_POST['h'];
    $plage=$_POST['plage'];
    $s="/";
    $date="$j$s$m$s$a";
    ?>
    <form action="enregistrer_nouveau1.php" method="POST">
    <table border="0" width="35%" style="background-color:grey;"cellpadding="4" cellspacing="6" align="center">
    <caption style="background-color:red;">Nouveau</caption
    <tr>
    <td>Commune</td>
    <?php
    require_once('connexion.php');
    $requete="SELECT * FROM chantiers";
    if ($result=mysql_query($requete)) {
    while($ligne=mysql_fetch_row($result)) {
    $id=$ligne[0];
    $commune=$ligne[1];
    $travaux=$ligne[3];
    echo"<td>$commune</td></tr><tr><td>Travaux</td><td>$travaux</td></tr>";
    }
    }else{
    die(bug);
    }
    if($plage==12) {
    echo"<tr><td>Début:</td>
    <td><select name='plaged'><option>08</option><option>10</option><option>12</option><option>14</option><option>16</option></select>h.</td>
    <td>Fin</td>
    <td><select name='plagef'><option>10</option><option>12</option><option>14</option><option>16</option><option>18</option></select>h.</td></tr>";
    }
    if($plage==24) {
    echo"<tr><td>Début:</td>
    <td><select name='plaged'><option>08</option><option>10</option><option>12</option><option>14</option><option>16</option><option>18</option><option>20</option><option>22</option><option>24</option><option value='26'>02</option><option value='28'>04</option><option value='30'>06</select>h.</td>
    <td>Fin</td>
    <td><select name='plagef'><option>10</option><option>12</option><option>14</option><option>16</option><option>18</option><option>20</option><option>22</option><option>24</option><option value='26'>02</option><option value='28'>04</option><option value='30'>06</option><option value='32'>08</select>h.</td></tr>";
    }
    ?>
    <tr>
    <td>Personnel
    </td>
    <td><select multiple name="ouvrier[]">
    <?php
    require_once('connexion.php');
    $requete="SELECT * FROM ouvriers";
    if ($result=mysql_query($requete)) {
    while($ligne=mysql_fetch_row($result)) {
    $id=$ligne[0];
    $nom=$ligne[8];
    $heure_affect=$ligne[9];
    if($heure_affect >=7){
    $classe="rouge";
    }elseif($heure_affect >0 && $heure_affect <7){
    $classe="vert";
    }else{
    $classe="noir";
    }
    echo"<option value='.$id.' class='.classe.'> '.$nom.' </option>";
    }
    }else{
    die(bug);
    }
    ?></select>
    </td>
    <td colspan="2">"Maj ou ctrl" pour séléctions multiples.</td>
    </tr>
    </table>
    <table width="20%" align="center" border="0">
    <tr>
    <td align='center'><input type="submit" value="Enregistrer"><input type="reset" value="Reset"></td>
    <?php
    echo "<textarea style='display:none;' name='chantier'>$chantier</textarea><textarea style='display:none;' name='h'>$h</textarea><textarea style='display:none;' name='date'>$date</textarea>";
    ?>
    </form>
    </tr>
    </form></table>

    </body>
    </html>
    0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    dans le cas ou heure_affect n'est pas >0 $classe n'est pas défini donc il faut lui donner une valeur vide par défaut

    66 <?php
    $classe="";
    67 require_once('connexion.php');
    68 $requete="SELECT * FROM ouvriers";
    69 if ($result=mysql_query($requete)) {
    70 while($ligne=mysql_fetch_row($result)) {
    71 $id=$ligne[0];
    72 $nom=$ligne[8];
    73 $heure_affect=$ligne[9];
    74 if($heure_affect >=7){
    75 $classe="rouge";
    76
    77 }elseif($heure_affect >0 && $heure_affect <7){
    78 $classe="vert";
    79 }
    80 echo"<option value='.$id.' class='.$classe.'> '.$nom.' </option>";
    81 }
    82 }else{
    83 die(bug);
    84 }
    85 ?>
    0