Modifier la couleur de cellule avec mysql/php
Hors ligneTin Le 06/02/2007 à 18:44 Profil de Tin Configuration de Tin

Bonjour,
Je suis débutante et je cherche à progresser, je suis bloquée depuis quelque temps sur un problème d'affichage.
J'ai un tableau (calendrier) J'ai une base de données avec une table reservation avec un champ id_reserv qui correspond à un timestamp concatené avec une autre variable.
Cela fonctionne , quand le visiteur veut réserver il clique sur la cellule du tableau et envoie la variable id_reserv (par un GET) qui est alors comparée à celles de la table, si elle n'existe pas dans la table, elle est enregistrée.
Maintenant je cherche à modifier les cellules correspondant à une réservation dans ma base de données, je voudrais que dès que j'affiche le calendrier il mette à jour les cellules réservées (en vert).
Je joins un exemple de code simplifié(j'ai remplacé mes timestamp par a,b,c,d....
Problème rencontré
Je n'ai que la première réservation rencontrée dans la base de données qui change la couleur de la cellule correspondante et puis plus rien, j'ai aussi un problème d'affichage de #### sous le tableau, ma routine ne doit pas être satisfaisante

<html>
 <head>
       <title></title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
       <style type="text/css">
       
  table 
{
   margin: auto; 
   border: 4px outset green; 
   border-collapse: collapse; 
}   
td 
{
   background-color: white;
   color: black;
   border: 1px solid black;
   width: 100px;
   height: 50px;

}
td.res /* Les cellules réservées */
{
   background-color: green;
   color: black;
   border: 1px solid black;
   width: 100px;
     height: 50px;

}
 </style>
   </head>
   <body>
   <?php
  
   $reserv
= array('a','b','c','d','e','f','g','h','i');
   $db mysql_connect('localhost''root''')  or die('Erreur de connexion '.mysql_error());
        // sélection de la base ,
        mysql_select_db('mabase',$db)  or die('Erreur de selection '.mysql_error());
          for($i=0;$i<sizeof($reserv);$i++)
          {
          $sql " SELECT id_reserv FROM reservation WHERE id_reserv='".$reserv[$i]."'";    
        
// on envoie la requête
       $req mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());}
while (
$donnees['id_reserv'] = mysql_fetch_array($req))
  {
 {
echo
'<table>';
if (
$donnees['id_reserv']==$reserv[0]){echo'<tr><td class="res" ><a href="res.php?a='.$reserv[0].'">réservé</a></td>';} else { echo'<tr><td ><a href="cellule.php?a='.$reserv[0].'">#</a></td>';}
if (
$donnees['id_reserv']==$reserv[1]){echo'<td class="res"><a href="res.php?a='.$reserv[1].'">réservé</a></td>';} else { echo'<td ><a href="cellule.php?a='.$reserv[1].'">#</a></td>';}
if (
$donnees['id_reserv']==$reserv[2]){echo'<td class="res"><a href="res.php?a='.$reserv[2].'">réservé</a></td>';} else { echo'<td ><a href="cellule.php?a='.$reserv[2].'">#</a></td></tr>';}
if (
$donnees['id_reserv']==$reserv[3]){echo'<tr><td class="res" ><a href="res.php?a='.$reserv[3].'">réservé</a></td>';} else { echo'<tr><td ><a href="cellule.php?a='.$reserv[3].'">#</a></td>';}
if (
$donnees['id_reserv']==$reserv[4]){echo'<td class="res"><a href="res.php?a='.$reserv[4].'">réservé</a></td>';} else { echo'<td ><a href="cellule.php?a='.$reserv[4].'">#</a></td>';}
if (
$donnees['id_reserv']==$reserv[5]){echo'<td class="res"><a href="res.php?a='.$reserv[5].'">réservé</a></td>';} else { echo'<td ><a href="cellule.php?a='.$reserv[5].'">#</a></td></tr>';}
if (
$donnees['id_reserv']==$reserv[6]){echo'<tr><td class="res" ><a href="res.php?a='.$reserv[6].'">réservé</a></td>';} else { echo'<tr><td ><a href="cellule.php?a='.$reserv[6].'">#</a></td>';}
if (
$donnees['id_reserv']==$reserv[7]){echo'<td class="res"><a href="res.php?a='.$reserv[7].'">réservé</a></td>';} else { echo'<td ><a href="cellule.php?a='.$reserv[7].'">#</a></td>';}
if (
$donnees['id_reserv']==$reserv[8]){echo'<td class="res"><a href="res.php?a='.$reserv[8].'">réservé</a></td>';} else { echo'<td ><a href="cellule.php?a='.$reserv[8].'">#</a></td></tr>';}
echo
'</table>';}
?>
</body>
</html>
Hors ligneSpoon Le 07/02/2007 à 21:59 Profil de Spoon Configuration de Spoon

Salut,


Tu devrais pouvoir faire tout çà en une seule requète quelquechose du genre :


$sql = " SELECT id_reserv FROM reservation WHERE id_reserv IN ('a','b','c','d','e','f','g','h','i')";     
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());}       
        
while ($row = mysql_fetch_assoc($req)) 
  { 
       
       foreach ($reserv as $value){
            
            $class  = '';
            $status = '#';
             
            if ($row['id_reserv'] == $value ){
                 
                 $class  = 'class="res"';
                 $status = 'réservé';
             }
             echo '<tr><td '.$class.'><a href="res.php?a='.$value.'">'.$status.'</a></td>';
       }

Bon suis un peu naze ce soir alors je te garanti pas que ca fonctionne , mais si ca peut t'aider..
A+
Hors ligneTin Le 08/02/2007 à 10:57 Profil de Tin Configuration de Tin

Merci spoon,
j'essaie ton code, mais pour le moment, cela ne fonctionne pas, j'ai une page vierge, sans message d'erreur.
Je vais essayer de voir ce qui cloche.
A+
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels