Okies,
Ainsi, Im travaille sur ma base de données montrer, et Ive a obtenu les bases de MySql trouvé pour faire ce pour quoi j'ai besoin d'en finir...
Ce qui Im essayant de faire le bien maintenant, je sais que je peux faire avec une autre requête MySQL et PHP d'une manipulation des résultats, mais je sais juste theres une commande MySQL qui peut faire ce que je veux dans une seule ligne de code ..
Heres My current MySQL .. demande
SELECT DISTINCT pn_showstate FROM nuke_shows ORDER BY pn_showstate
pn_showstate contient une abréviation de 2 lettres d'État pour l'emplacement de l'exposition. En utilisant ceci, je peux le configuré pour afficher seulement les États pour qui la connaît de spectacles qui se passe - de cette façon, je n'ai pas 20 états avec (0) montre énumérés gif "alt =":)" title =" Smile "/>
Alors que la boucle s'exécute, à savoir que les Etats ont leur témoigne, Je viens d'appeler...
while ($data = mysql_fetch_assoc($result)) {
$output->Text('<tr bgcolor="#E3EDD9"><td width="5" align="right" nowrap><font face="Verdana">»</font></td><td width="99%"><a href="'.pnModURL('shows', 'user', 'showlist').'&state='.$data['pn_showstate'].'">'.getstate($data['pn_showstate']).'</a> ('.countshows($data['pn_showstate']).')</td></tr>');
}
- while ($data = mysql_fetch_assoc($result)) {
- $output->Text('<tr bgcolor="#E3EDD9"><td width="5" align="right" nowrap><font face="Verdana">»</font></td><td width="99%"><a href="'.pnModURL('shows', 'user', 'showlist').'&state='.$data['pn_showstate'].'">'.getstate($data['pn_showstate']).'</a> ('.countshows($data['pn_showstate']).')</td></tr>');
- }
Sur ma demande régulière pour obtenir le nombre total de spectacles dans un état donné, il appelle cette fonction...
function countshows($state) {
$sql = 'select count(*) from nuke_shows where pn_showstate = "'.$state.'" and pn_showend > "'.(time() + 86400).'"';
$result = mysql_query($sql);
return mysql_result($result, 0);
}
- function countshows($state) {
- $sql = 'select count(*) from nuke_shows where pn_showstate = "'.$state.'" and pn_showend > "'.(time() + 86400).'"';
- $result = mysql_query($sql);
- return mysql_result($result, 0);
- }
et GetState () tourne simplement une abréviation de 2 lettres d'Etat en son nom complet.
Évidemment, je ne veux pas montre de liste qui ont déjà eu lieu.
Comme vous pouvez le voir dans le countshows () la fonction, il ya un champ appelé pn_showend. Il s'agit d'un timestamp Unix de la date de la fin du salon (00:00 ce jour-là). Je ne veux annonces pour ceux pour montrer la toute dernière journée du spectacle, alors je l'ai mis à la liste des pas sur l'autre minuit dans cette fonction.
Maintenant, disons qu'un état particulier (Floride, dans cet exemple), la base de données dispose de 20 spectacles, mais 16 d'entre eux ont déjà eu lieu.
Pas de problème, la fonction voit encore qu'il ya des spectacles en Floride, et countshows () retourne le nombre correct (4 affiche le temps restant).
Mais, qu'est-ce s'il ya 20 spectacles dans la base de données, et tous ont déjà eu lieu. Ma première boucle se poursuit encore de voir que il ya des spectacles en Floride, mais countshows () va retourner 0.
Y at-il un moyen de modifier cette demande...
SELECT DISTINCT pn_showstate FROM nuke_shows ORDER BY pn_showstate
De sorte qu'il prenne en compte les...
$sql = 'SELECT DISTINCT pn_showstate FROM nuke_shows where pn_showend > "'.(time() + 86400).'" ORDER BY pn_showstate';
ne fonctionne pas, je savais déjà, mais coller pour ceux qui pourraient le suggérer

Et c'est sur MySQL 3.23.56 (je pense, juste à côté d'occasion sans vérifier, je connais son définitivement 3.23.something)