A Quick MySQL Query question.

  • Axe
  • Genius
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Jan 07, 2004
  • Messages: 5744
  • Loc: Sub-level 28
  • Status: Offline

Message Janvier 22nd, 2004, 2:15 pm

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

Code: [ Select ]
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...

Code: [ Select ]
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>');
 }
  1. while ($data = mysql_fetch_assoc($result)) {
  2.   $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>');
  3.  }


Sur ma demande régulière pour obtenir le nombre total de spectacles dans un état donné, il appelle cette fonction...

Code: [ Select ]
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);
}
  1. function countshows($state) {
  2.  $sql = 'select count(*) from nuke_shows where pn_showstate = "'.$state.'" and pn_showend > "'.(time() + 86400).'"';
  3.  $result = mysql_query($sql);
  4.  return mysql_result($result, 0);
  5. }

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...

Code: [ Select ]
SELECT DISTINCT pn_showstate FROM nuke_shows ORDER BY pn_showstate

De sorte qu'il prenne en compte les...

Code: [ Select ]
$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)
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 22nd, 2004, 2:15 pm

  • b_heyer
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juin 15, 2003
  • Messages: 4583
  • Loc: Maryland
  • Status: Offline

Message Janvier 22nd, 2004, 2:21 pm

Qu'est-ce qui se passe quand vous faites ceci:

Code: [ Select ]
$sql = 'SELECT DISTINCT pn_showstate FROM nuke_shows where pn_showend > "'.(time() + 86400).'" ORDER BY pn_showstate';


Vous avez dit que ça ne marche pas, mais qu'est-ce exactement que je peux parler?
Pixel Acres V2
  • Axe
  • Genius
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Jan 07, 2004
  • Messages: 5744
  • Loc: Sub-level 28
  • Status: Offline

Message Janvier 22nd, 2004, 2:29 pm

Woah!

Je viens de le remettre dans le code de reproduire l'erreur, il m'a donné et cela a fonctionné ?!??!?

Eh bien, bon, je suppose grâce b_heyer, lol :)

Musta je fait une faute de frappe quelque part en avant.
  • b_heyer
  • Web Master
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juin 15, 2003
  • Messages: 4583
  • Loc: Maryland
  • Status: Offline

Message Janvier 22nd, 2004, 3:29 pm

J'ai pensé qu'il avait quelque chose comme ça. Cela pourrait avoir produit ce que vous cherchez, et j'ai été au-delà de la confusion quant à ce qui n'allait pas avec elle! :-P
Pixel Acres V2
  • Axe
  • Genius
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Jan 07, 2004
  • Messages: 5744
  • Loc: Sub-level 28
  • Status: Offline

Message Janvier 22nd, 2004, 3:36 pm

Eh bien, oui, je me suis trop itd travail ..

Vous savez ce que c'est probablement le cas, et Ive fait cette faute de frappe beaucoup aujourd'hui...

Je dois avoir sauté le "w" dans pn_showstart & pn_showend - son Bendy ce dodgy-clavier, heh. Ses l'un de ceux que vous pouvez enrouler...Je ne l 'ai parce que quand je tape son silence, vous ne pouvez entendre une chose. Je peux donc rester en place le travail de nuit et de ne pas perturber tout Cheri shes dormir.

Afficher de l'information

  • Total des messages de ce sujet: 5 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 248 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC