ColdFusion Conditionnelle RecordCount
Correct pour les utilisateurs... en Voici une qui semble impossible de se tromper instruction conditionnelle. C'est très simple, cependant, je ne peux pas comprendre pourquoi il ne fonctionne pas de la façon dont il devrait.
<cfoutput query="checkForAd">
<!--- also used the line <cfif RecordCount eq 0> --->
<cfif checkForAd.RecordCount eq 0>
<!--- Display some message. (Perhaps using a table, undecided) --->
<cfelse>
<!--- Display some other message. (Happens to be a table) --->
</cfif>
</cfoutput>
Lorsque le RecordCount renvoie un nombre supérieur à 0, le cas d'autre s'affiche correctement. Lorsque RecordCount renvoie 0, rien ne s'affiche et la forme continue le long de son chemin. Je suis devenu très frustré que cela devrait être assez simple...
OriginalL'auteur TaylorPLM | 2011-09-26
Vous devez vous connecter pour publier un commentaire.
La sortie ne retourne aucun résultat si la requête ensemble est vide. Essayez:
Je suppose que vous êtes à la recherche pour le retour d'un certain nombre de dossiers... si vous étiez juste retour, la
query="checkForAd"
n'est pas nécessaire. Vous pouvez simplement référence à la requête & variables dans un<cfoutput></cfoutput>
.Modifier
Voici un moyen d'accéder à une variable de requête:
QueryName["ColumnName"][RowNum]
(Comme vous cherchez à élargir votre codage, il ya beaucoup que vous pouvez faire avec des variables de requête. Il y a un bon aperçu des différentes approches à la ColdFusion et l'obtention de données de MySQL)
Mon plaisir... n'hésitez pas à accepter la réponse. Il va l'aider avec les questions d'avenir.
Je vais, je suis tout simplement en attente pour la limite de temps pour un pour être.
cool, merci. En passant, je viens de poster sur modifier pour vous diriger dans la bonne direction en accédant à la requête de vars.
Il est intéressant de souligner que RowNum généralement par défaut à 1, de sorte que vous pouvez simplement
QueryName["ColumnName"]
(et aussiQueryName.ColumnName
si il n'y a pas de caractères spéciaux dans le nom de la colonne). Mais notez également que si vous avez en boucle par le biais d'une requête (ou l'ajout de nouveaux enregistrements), puis la ligne num sera le dernier enregistrer n'est pas le premier.OriginalL'auteur nykash
Comme nykash l'a souligné, le corps d'un
cfoutput query
(ou uncfloop query
) ne s'exécute jamais si il y a pas de dossiers, afin de faire un chèque pour un zéro recordcount ne sera jamais vrai à l'intérieur d'un.Cependant, je trouve l'exemple suivant d'un plus lisible:
Il peut ne pas sembler beaucoup dans l'isolement, mais je pense que c'est un peu plus propre et plus facile de voir ce qui se passe, surtout lorsqu'il est combiné avec un autre code.
Spécifiquement sur la RecordCount vérifier, si je garde sur le nombre précis puis je vais utiliser l'ÉGALISEUR (ou GT/GT/etc), mais si je ne se soucient de "avoir des registres" vs "ne pas avoir les dossiers" puis-je utiliser l'implicite conversion booléenne qui CFML fournit pour simplifier le code. Cela le rend plus facile à identifier quand je suis en utilisant le bon choix binaire ou un plus significatif, afin de naviguer dans le code est plus facile.
OriginalL'auteur Peter Boughton