Select count
Résolu
Riwalenn
Messages postés
364
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila j'ai un soucis, j'utilise 3 tables que je note ci-dessous :
table indexation (id_index, eid, id_users)
table phpc_events (eid, cid, owner, subject, description, readonly, catid, archive)
table phpc_occurrences(oid, eid, startdate, enddate, starttime, endtime, timetype)
phpc_events corresponds à l'entrée des évenements dans un calendrier avec sujet et description
phpc_occurrences est lié au précédent et montre l'heure de début, l'heure de fin, la date de début et la date de fin d'un évenement.
indexation correspond aux groupes formé entre un évenement et un utilisateur. (eid etant l'id de l'évenement et id_user celui de l'utilisateur)
J'ai donc crée un tableau de ce style
Mon idée était de pouvoir visualiser l'ensemble des évenements entrés dans le calendrier avec le nombre d'inscrits à côté.
Mon problème étant que je n'arrive à visualiser que les évenements où il y a des inscrits... Si pas d'inscrits rien à l'écran :(
mon code ci-dessous :
- code php avant header
- code php de la table
Si quelqu'un pouvait m'aider ce serait sympa, je tourne en rond depuis ce matin :(
Voila j'ai un soucis, j'utilise 3 tables que je note ci-dessous :
table indexation (id_index, eid, id_users)
table phpc_events (eid, cid, owner, subject, description, readonly, catid, archive)
table phpc_occurrences(oid, eid, startdate, enddate, starttime, endtime, timetype)
phpc_events corresponds à l'entrée des évenements dans un calendrier avec sujet et description
phpc_occurrences est lié au précédent et montre l'heure de début, l'heure de fin, la date de début et la date de fin d'un évenement.
indexation correspond aux groupes formé entre un évenement et un utilisateur. (eid etant l'id de l'évenement et id_user celui de l'utilisateur)
J'ai donc crée un tableau de ce style
<table> <tr> <td>sujet</td><td>supprimer</td><td nbr inscrits</td>
Mon idée était de pouvoir visualiser l'ensemble des évenements entrés dans le calendrier avec le nombre d'inscrits à côté.
Mon problème étant que je n'arrive à visualiser que les évenements où il y a des inscrits... Si pas d'inscrits rien à l'écran :(
mon code ci-dessous :
- code php avant header
$sql="select phpc_events.eid, phpc_events.subject, phpc_events.description, phpc_events.archive, phpc_occurrences.eid, phpc_occurrences.oid, phpc_occurrences.starttime, phpc_occurrences.endtime, phpc_occurrences.startdate, phpc_occurrences.enddate FROM phpc_events, phpc_occurrences WHERE phpc_events.eid=phpc_occurrences.eid ORDER BY phpc_occurrences.startdate"; $rez=mysql_query($sql); $nb_lignes = mysql_affected_rows(); $sql_count="SELECT count(indexation.eid)as nb_inscrits, phpc_events.eid FROM indexation, phpc_events WHERE indexation.eid=phpc_events.eid GROUP BY indexation.eid ORDER BY indexation.eid desc"; $rez_count=mysql_query($sql_count); $nb_lignes3 = mysql_affected_rows();
- code php de la table
<?php while(($nn=mysql_fetch_array($rez)) && ($nnc=mysql_fetch_array($rez_count))){ ?> <tr> <?php if ($nn[3] != 1){ ?> <td><a href="gestion_agenda.php?eid=<?php echo $nn[0]; ?>"> - <?php echo $nn[1]."(le ".date("d/m/Y", strtotime($nn[8])).")"; ?></a></td> <td align="center"><a href="files/traitement_agenda.php?eid=-<?php echo $nn[0]; ?>"><img src="img/false.png" border="0" /></a></td> <td align="center"><?php echo $nnc[0]; ?> </td> <?php } ?> </tr> <?php } ?>
Si quelqu'un pouvait m'aider ce serait sympa, je tourne en rond depuis ce matin :(
A voir également:
- Select count
- Please select boot device - Forum Windows 7
- Reboot and select proper boot device - Forum Windows
- Select boot mode android - Guide
- Reboot and select proper boot device or insert boot media in selected boot device and press a key ✓ - Forum PC portable
- Problème de démarrage - boot device and press a key ✓ - Forum Windows 10
5 réponses
Bonjour,
Essaie cette requête :
table indexation (id_index, eid, id_users)
table phpc_events (eid, cid, owner, subject, description, readonly, catid, archive)
table phpc_occurrences(oid, eid, startdate, enddate, starttime, endtime, timetype)
Cette requête remplace tes deux requêtes.
Le code de ta table s'écrit alors :
Je me suis permis de remplacer les nn[x] par des nn["nom"] que je trouve beaucoup plus explicites et pratiques, ainsi que la gestion du code html. c'est une préférence personnelle, mais tu fais comme tu veux :)
Xavier
Essaie cette requête :
table indexation (id_index, eid, id_users)
table phpc_events (eid, cid, owner, subject, description, readonly, catid, archive)
table phpc_occurrences(oid, eid, startdate, enddate, starttime, endtime, timetype)
SELECT count(*) as nb_inscrits, e.eid, e.subject, e.description, e.archive, o.starttime, o.endtime, o.startdate, o.enddate FROM phpc_events e INNER JOIN phpc_occurences o ON e.eid = o.eid LEFT OUTER JOIN indexation i ON e.eid = i.eid GROUP BY e.eid ORDER BY o.startdate
Cette requête remplace tes deux requêtes.
Le code de ta table s'écrit alors :
<?php $query = "SELECT count(*) as nb_inscrits, e.eid, e.subject, e.description, e.archive, o.starttime, o.endtime, o.startdate, o.enddate FROM phpc_events e INNER JOIN phpc_occurences o ON e.eid = o.eid LEFT OUTER JOIN indexation i ON e.eid = i.eid GROUP BY e.eid ORDER BY o.startdate"; $rez = mysql_query($query) or die("Erreur dans la requête $query<br />".mysql_error()); while($nn = mysql_fetch_array($rez)) { echo "<tr>"; if ($nn["archive"] != 1) { echo "<td><a href=\"gestion_agenda.php?eid=".$nn["eid"]."\"> - ".$nn["subject"]."(le ".date("d/m/Y", strtotime($nn[startdate])).")</a></td>"; echo "<td align=\"center\"><a href=\"files/traitement_agenda.php?eid=-".$nn["eid"]."\"><img src=\"img/false.png\" border=\"0\" /></a></td>"; echo "<td align='center'>".$nn["nb_inscrits"]."</td>"; } echo "</tr>"; } ?>
Je me suis permis de remplacer les nn[x] par des nn["nom"] que je trouve beaucoup plus explicites et pratiques, ainsi que la gestion du code html. c'est une préférence personnelle, mais tu fais comme tu veux :)
Xavier
je test ça et je te dis si ça fonctionne le temps de créer une sauvegarde de mon fichier entre-temps :P
alors c'est cool ça fonctionne y'a juste des doubles quote oubliées à ($nn[startdate])...
par contre si tu pouvais juste m'expliquer comment tu fais pour que le o. ou le e. soient reconnus sans que tu ais fait de AS ? Oo que je puisse le réutiliser pour mes autres requête du coup :P
merci pour le coup de main super sympa ^^
par contre si tu pouvais juste m'expliquer comment tu fais pour que le o. ou le e. soient reconnus sans que tu ais fait de AS ? Oo que je puisse le réutiliser pour mes autres requête du coup :P
merci pour le coup de main super sympa ^^
Le AS est facultatif :
FROM phpc_events e
INNER JOIN phpc_occurences o ...
LEFT OUTER JOIN indexation i ...
Nom de la table suivi du nom qu'on veut lui donner (alias)
FROM phpc_events e
INNER JOIN phpc_occurences o ...
LEFT OUTER JOIN indexation i ...
Nom de la table suivi du nom qu'on veut lui donner (alias)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question