Probleme requête PHP et SQL
starrage
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
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 ?
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:
- Probleme requête PHP et SQL
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Jointure sql ✓ - Forum MySQL
- Alert php ✓ - Forum PHP
3 réponses
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>
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>
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>
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 ?>
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>
-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 ?>
Mais le problème de Undefined variable: classe on line 80
Je ne comprend pas..