tout est dans le titre!
Source / Exemple :
// mes objets de connexion à ma base de donnée
<%
dim mydb
dim oConn
dim oRs
dim varsql
mydb = "DBQ=c:\\\\inetpub\\\\database\\\\mydatabase.mdb;Driver={Microsoft Access Driver (*.mdb)};DriverId=25"
set oConn = server.createobject("ADODB.Connection")
oConn.Open mydb
set oRs = server.createobject("adodb.recordset")
%>
// ma boucle qui lance la fonction jusqu'à ce que l'ID obtenu existe
<%
do while id_ok = 0 'tant que l'id_ok est égal à 0 on execute la fonction
gen_id()
loop
response.write mygen_id & " est l'ID séléctionné au hasard de ma table"
%>
// ma fonction qui récupère l'id au hasard
<%
function gen_id()
varsql = "SELECT max(image.id) as max_id, min(image.id) as min_id FROM image" 'la requête SQL qui selectionne l'id le plus bas et le plus haut
oRs.open varsql, oConn 'j execute la requete
max_id = oRs.fields("max_id") 'j attribue l'ID le plus haut à la variable
min_id = oRs.fields("min_id") 'j attribue l'ID le plus bas à la variable
oRs.close 'je ferme mon recordset
Randomize ' je genère un nombre entre max_id et min_id MyValue = Int((max_id - min_id + 1) * Rnd + min_id)
varsql = "SELECT id FROM image WHERE id = " & myvalue 'la requete SQL qui vérifie que le numero généré existe
oRs.open varsql, oConn 'j execute la requete
if oRs.eof then 'si le recordset est vide
id_ok = 0
else 's il n est pas vide, l'ID existe
id_ok = 1
mygen_id = myvalue 'mygen_id est maintenant la variable qui contient l'ID séléctionné au hasard!!
end if
oRs.close 'on ferme le recordset
end function 'fin de la fonction
%>
Conclusion :
J'ai pensé que ca pourrait etre utile pour certain vu comme j'ai galeré pour trouver une solution. Imaginons que vous avez un site avec un album photo (beaucoup de photo) et que vous décidez de faire une page qui afficherais une photo au hasard tout les jours. Toutes les infos de vos photos sont bien sur stockées dans une base de donnée access.
Illustration de la table IMAGE:
ID (n° auto; clé primaire) | image (texte)
pour info: lorsqu'une image est supprimée de la table son ID n'existe plus, il y a donc un trou (ex: 32, 34, 35). C'est à cause de cela que ce système est plus compliqué :)
Voilà maintenant pour séléctionner un ID au hasard parmis les 1000 présents dans la table je fonctionne de la manière suivante:
- on selectionne dans la table IMAGE l'ID le plus bas et le plus haut (ex: 3 et 700)
- on génère un n° au hasard compris entre l'ID le plus bas (3) et l'ID le plus haut (700)
- on regarde si le n° génèré existe dans la table IMAGE
- s'il existe, on affiche l'image, sinon on regenere un n° etc...
Bien entendu avec les explications données une image au hasard s'affichera à chaque visite sur la page et non chaque jour (pour 1 tout les jours il suffit de créer une 2eme table avec un seul enregistrement qui comprend l'ID de l'image et la date d'affichage puis faire une comparaison des date et executer le script ou non)
Si y a des questions posez les.
A+
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.