Select count
Résolu
Riwalenn
Messages postés
370
Statut
Membre
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
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
- Reboot and select proper boot device - Forum Windows
- Please select boot device - Forum Windows 7
- Select boot mode android - Guide
- Select count php - Forum PHP
- Diskpart select disk - Guide
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