Probleme requête PHP et SQL

Fermé
starrage Messages postés 16 Date d'inscription lundi 17 juin 2013 Statut Membre Dernière intervention 24 février 2014 - 17 juin 2013 à 16:48
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 juin 2013 à 20:53
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 ?
A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
17 juin 2013 à 23:01
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
starrage Messages postés 16 Date d'inscription lundi 17 juin 2013 Statut Membre Dernière intervention 24 février 2014
18 juin 2013 à 23:45
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
starrage Messages postés 16 Date d'inscription lundi 17 juin 2013 Statut Membre Dernière intervention 24 février 2014
19 juin 2013 à 15:56
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
starrage Messages postés 16 Date d'inscription lundi 17 juin 2013 Statut Membre Dernière intervention 24 février 2014
19 juin 2013 à 16:02
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
starrage Messages postés 16 Date d'inscription lundi 17 juin 2013 Statut Membre Dernière intervention 24 février 2014
Modifié par starrage le 18/06/2013 à 14:02
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 juin 2013 à 20:53
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