Tableau et requete php/MySQL

treckar Messages postés 70 Statut Membre -  
treckar Messages postés 70 Statut Membre -
Bonjour,

Je voudrait afficher sous forme de tableau dynamique, les resultat d'une requete qui affiche jour -> horaires -> activite -> noms.

J'ai reussi à tout sortir sous forme de liste dynamique (j'ai fait un formulaire pour associer toutes ces données).

J'ai chercher sur la toile, il faudrait apparement utiliser la fonction array mais les explications ne sont pas tres claire.

Merci pour votre aide.

PS: Voici mon code.

<HTML>
<HEAD>
<BASE target="Page principale">
</HEAD>
<body>
<?php
// connexion à la base
mysql_connect('localhost', 'geronimo', 'CaXpQprn6rLXPEy3') or die('Erreur de connexion '.mysql_error());
mysql_select_db('geronimo');

//requete
$sql = "SELECT 'Jour'.'jour', 'activite'.'activite', 'identite'.'nom', 'horaires'.'heure_debut', 'horaires'.'heure_fin', 'atelier'.'structure'
FROM choix, tableau, Jour, identite, activite, horaires, atelier
WHERE (('choix'.'IDidentite' = 'identite'.'ID')
AND ('choix'.'IDtableau' = 'tableau'.'ID')
AND ('tableau'.'IDjour' = 'Jour'.'ID')
AND ('tableau'.'IDactivite' = 'activite'.'ID')
AND ('tableau'.'IDhoraires' = 'horaires'.'ID')
AND ('identite'.'IDatelier' = 'atelier'.'ID'))
ORDER BY 'Jour'.'ID', 'horaires'.'heure_debut', 'activite'.'ID', 'identite'.'nom' ASC";
$resultat = mysql_query($sql) or die(mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($resultat))
{
// on affiche les informations de l'enregistrement en cours
echo ' <i> '.$data['jour'].'</i>';
echo ' <i> de '.$data['heure_debut'].' à '.$data['heure_fin'].'</i> ';
echo ' <i> '.$data['activite'].'</i></br>';
echo ' <i> <span style="font-weight: bold;">nom:</span> '.$data['nom'].'</br></i>';
echo ' <i> <span style="font-weight: bold;">atelier: </span>'.$data['structure'].'</i></br></br>';
}

?>

</body>
</HTML>

1 réponse

  1. Relored
     
    Salut,
    J'ai chercher sur la toile, il faudrait apparement utiliser la fonction array mais les explications ne sont pas tres claire.

    Qu'est ce qui n'est pas clair?
    Avec PHP vous pouvez faire des requêtes du langage SQL à la base, le résutat est un sélecteur.
    Pour l'exploiter vous devez le traiter comme données donc par exemple le mettre sous la forme de tableaude variable(array).
    Si vous voulez affichez des données en tableau cela n'à rien à voir c'est uniquement de l'affichage donc la balise HTML <table>.

    L'important c'est ça:

    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_array($resultat))

    ça ne fait pas qu'une boucle mais permet d'obtenir à partir du sélecteur(résultat de a requête) les données sinon c'est inexploitable, donc un tableau de variables à 'n' dimensions correspondant à chaque ligne de la table de données 'n' étant le nombre de lignes. I; y a 3 fois le même mot mais il n'ont strictement aucun rapport:
    TABLEAU/TABLE:
    SQL=de la base de données : c'est une entité qui regroupe les données par lignes et colonnes
    PHP(ou autre langage de programmation)=un regroupement de variables
    HTML='affichage en lignes et colonnes, les valeurs sont des détails c'est juste de la mise en page
    0
    1. treckar Messages postés 70 Statut Membre
       
      // on fait une boucle qui va faire un tour pour chaque enregistrement
      while($data = mysql_fetch_array($resultat))
      {
      // on affiche les informations de l'enregistrement en cours
      echo ' <i> '.$data['jour'].'</i>';
      echo ' <i> de '.$data['heure_debut'].' à '.$data['heure_fin'].'</i> ';
      echo ' <i> '.$data['activite'].'</i></br>';
      echo ' <i> <span style="font-weight: bold;">nom:</span> '.$data['nom'].'</br></i>';
      echo ' <i> <span style="font-weight: bold;">atelier: </span>'.$data['structure'].'</i></br></br>';
      }


      Mon probleme est qu'il m'affiche une liste avec pour chaque enregistrement le jour puis les horaires puis l'activite puis un nom et une structure.
      Je cherche un moyen de réunir les données.
      Exemple:
      mercredi de 15 à 17 foot superman, batman, ...
      ce qui est different de :
      mercredi de 15 à 17 foot superman
      mercredi de 15 à 17 foot batman

      merci pour vos conseils
      0