Bonsoir à tous ,
J'ai un petit soucis. J'ai une jolie base de donnée, avec 300 entrée environs, mais dans la structure, il y a des "trou" (certainne ligne se sont faite deletté). Ces trou ne géne en rien habituellement suaf pour une page de mon site.
En effet, j'affiche les données d'une ligne aléatoirement pour mes utilisateurs (pour les personnes qui désirent aller au gré du surf sur une page au hasard).
Je créer un id aléatoire entre 2 borne (le plus grand et le plus petit ID). Mais quand le hasard fait mal les choses je tombe sur mes "trous". Et là forcément rien ne s'affiche...
Comment faire ?
Parce que l'id n'existe pas ! un <cfif id eq 0> c'est un peut pisser dans un violoncelle du XIII éme siécle.
Aller le code de ma page (ainsi que le lien pour les gens qui voudrais tester les choses (en gros tous les 20/30 liens il tombe sur une ligne vide).
http://annuairejdra.liber-mundi.org/random.cfm
Le code :
<cfprocessingdirective pageencoding="ISO-8859-1">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--- Tri le plus haut id de la base annu --->
<cfquery datasource="#application.kaimdb#" name="getp" maxrows="1">
SELECT id
FROM annu
ORDER BY id DESC
</cfquery>
<!--- Tri le plus petit id de la base annu --->
<cfquery datasource="#application.kaimdb#" name="getg" maxrows="1">
SELECT id
FROM annu
ORDER BY id
</cfquery>
<!--- Trouve un id au hasard entre les deux bornes --->
<cfset idrandom=randrange(#getp.id#,#getg.id#)>
<!--- Test pour savoir si il y a quelques chose correspondant à cette id --->
<cfquery datasource="#application.kaimdb#" name="test">
SELECT id
FROM annu
WHERE (id = #idrandom#) and (valide = 1)
</cfquery>
<!--- Si il n'y a rien relance le random --->
<cfif test.id eq 0>
<cfset idrandom=randrange(#getp.id#,#getg.id#)>
</cfif>
<!--- Affiche la ligne correspondant à l'id trouvé --->
<cfquery datasource="#application.kaimdb#" name="getl">
SELECT id, title, adr, valide, type,notec, noteg, commentaire
FROM annu
WHERE (id = #idrandom#) and (valide = 1)
</cfquery>
<!--- Affichage RAS --->
<cfoutput>
<title>Zoom sur #getl.title# la selection de Axolotl</title>
<META name='description' content='annuaire de jeu de rôle amateur Français'>
<META name='keywords' content='jeux, rôle, jeux de rôles, jeux amateur, amateur, nephilim, add, dd, d&d, Appel de chtulhu, liber-mundi.rog, jeu on-line, D20 systeme, COPS, LA, Freind, serieTV, brain.soda, forum jdra, SDN, Casus Belli, Mangas'>
<META name='author' content='Calmes Christophe'>
<META name='generator' content='Cold Fusion'>
<META name='language' content='fr'>
<META name='robot' content='index, follow'>
<link rel="stylesheet" href="#Application.WebRoot#/css/stylea.css">
</head>
<div align="center">
<body>
<table border="1" align="center" width="800">
<caption>#getl.title#<br><br></caption>
<tr>
<td height="15" width="200" align="center"><b>Aller voir #getl.title#</b></td>
<td height="15" align="center" nowrap><b> Type de Fichier </b></td>
<td height="15" align="center" nowrap><b> Etat d'avancement </b></td>
<td height="30" align="center" nowrap><b>Commentaire sur le jeu</b></td>
</tr>
<tr>
<td align="center" nowrap><a class="annuaire" href="#getl.adr#" target="_blank"> #getl.title# </a></td>
<td align="center" nowrap>#getl.noteg#</td>
<td align="center" nowrap>#getl.notec#</td>
<td align="left">
<p>#getl.commentaire#</p> </td>
</tr>
</table>
<br><br>
<table>
<tr>
<td>
<FORM>
<input type="button" value="Changer le Zoom !" style="width:150px" onClick="window.location='#application.WebRoot#/random.cfm?#Request.URLAppend#'">
</FORM>
</td>
<td>
<FORM>
<INPUT TYPE="button" value="Retour" style="width:150px" onClick="window.location='#application.WebRoot#/index.cfm?#Request.URLAppend#'">
</FORM>
</td>
</tr>
</table>
<!--- <font face="Papyrus,'Arial ',Arial" size="+1"><a href="#application.WebRoot#/index.cfm?#Request.URLAppend#">Retour à l'annuaire</a></font>
--->
</div>
</body>
</cfoutput>
</html>
Aresh mon site en CF :
http://kaim.liber-mundi.org/
Merci Code source