Page 1 sur 1

Affichage plan de salle

Posté : 26 mai 2011, 16:22
par Bisvan2
Bonjour,

J'ai une BDD avec une table "restaurant" qui rassemble le nombre de table du restaurant :
- idresto
- idtable (numéro de la table)
- nbrecouvert
- ligne (numéro de la ligne du tableau html pour affichage)
- colonne (numéro de la colonne du tableau html pour affichage)

Pour afficher sur une page HTML le plan de salle des plus "réels", j'ai divisé chaque salle de restaurant en quadrillage (tableau) avec ligne et colonne.
Chaque table du restaurant à donc une coordonnée "ligne" et une coordonnée "colonne" afin d'être affiché à la bonne place dans un tableau HTML

Par contre je sèche sur la boucle qui va prendre ces données de la BDD.
Auriez vous une idée de comment faire le script d'affichage ?

Merci !!!

Re: Affichage plan de salle

Posté : 26 mai 2011, 16:39
par moogli
salut,


a tu essayer un order by ligne, colonne dans la requete sql ?

ensuite pour l'affichage il faut réaliser la césure en fonction du nombre de table par ligne, pour cela soit tu le connais a l'avance, soit il faut vérifier s'il y a un changement de colonne dans le jeux de données, pour changer de ligne ;)

@+

Re: Affichage plan de salle

Posté : 26 mai 2011, 16:43
par Bisvan2
Alors j'ai essayé effectivement un order by ligne,colonne
Mais mon soucis est la boucle d'affichage des <TR> et <TD> en fonction du changement de ligne et de colonne...
J'arrive pas à trouver le truc...une idée ?

Re: Affichage plan de salle

Posté : 26 mai 2011, 16:55
par moogli
un truc du genre :
<?php
// la requete j'te laisse faire => $sql
$req = mysql_query($sql);
if ($req === false ) {
// message d'erreur qui va bien pour le cas où
echo 'Erreur SQL : '.mysql_error();
}
else {
// tout est ok
echo '<table><tr>';
$col = '';
while($data = mysql_fetch_assoc($req)) {
if (empty($col)) $col = $data['colonne'];
if ($col != $data['colonne']) {
echo '</tr><tr>';
$col = $data['colonne'];
}
echo '<td>',$data['idtable'],'</td>';
}
// pense a fermer le dernier tr
mysql_free_result($req);
}
?>
@+

Re: Affichage plan de salle

Posté : 26 mai 2011, 17:34
par Ryle
Personnellement j'essayerais de constituer un tableau php à deux dimensions (les lignes et les colonnes) qui pourrais être facilement parcouru pour afficher ton tableau html...

En gros tu charges toutes tes tables, et tu alimentes un tableau en spécifiant la ligne puis la colonne :
  $restaurant[ta_ligne][ta_colonne] = ....;
A partir de là tu peux utiliser deux boucles pour constituer ton tableau (une boucle pour les lignes et une boucle pour les colonnes), et pour chaque "case" tu vérifies s'il existe une correspondance dans le tableau
for ($i=0; $i < $nbLignes; $i++) {
  ... // tr
  for ($j=0; $j < $nbColonnes; $j++) {
    ... // td
    if (isSet($restaurant[$i][$j]))
      ...
  }
}