Tableau et requete php/MySQL

Fermé
treckar Messages postés 67 Date d'inscription dimanche 30 octobre 2011 Statut Membre Dernière intervention 9 décembre 2014 - Modifié par treckar le 15/05/2013 à 11:05
treckar Messages postés 67 Date d'inscription dimanche 30 octobre 2011 Statut Membre Dernière intervention 9 décembre 2014 - 16 mai 2013 à 09:33
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>


A voir également:

1 réponse

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
treckar Messages postés 67 Date d'inscription dimanche 30 octobre 2011 Statut Membre Dernière intervention 9 décembre 2014
16 mai 2013 à 09:33
// 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