|
Retourner des enregistrements aléatoires sous ASP SQL Server MySQL ou tout autre SGBDR |
|
|
|
Programmation -
Base de données
|
|
Ecrit par Kamal AOUDA
|
|
11-04-2006 |
|
Écrire sous ASP SQL Server MySQL ou tout autre SGBDR, une requête qui retourne des enregistrements aléatoires
Écrire avec ASP, SQL Server,
MySQL ou tout autre SGBDR une requête qui retourne des enregistrements
aléatoires (pratique lorsqu'on souhaite afficher des fiches de
produits de manière aléatoire sur la vitrine d'un site de commerce
électronique).
Sous SQL Server on peut utiliser la technique suivante :
select * from TABLE order by newid()
Sous MySQL on peut opter pour la technique suivante :
Select * From TABLE Order By RAND()
Sous les autres SGBDR on peut céer du code ASP pour récupérer de manière
aléatoire un enregistrement dans un jeu d'enregistrements
<%
' Définition du connection string
' le fichier "adovbs.inc" contient les constantes ADO
%>
<!-- #include file="Include/Connection.asp" -->
<!-- #include file="Include/adovbs.inc" -->
<%
Dim SQL, rs, MyConn
Dim NbRecord, Pos
' Définition de la requête SQL
SQL = "Select * From SousListe"
' Instance de la connection et du recordset
set MyConn = Server.CreateObject("adodb.connection")
Set Rs = Server.CreateObject("Adodb.recordset")
' Ouverture de la base
'Note : ConnectionString votre connection a votre BD
MyConn.Open ConnectionString
' Ouverture du recordset
Rs.Open Sql, MyConn , adOpenStatic, adLockPessimistic
' Requete vide ?
If Not Rs.EOF Then
' Se positionner au dernier record
Rs.MoveLast
' Se positionner au premier record
Rs.MoveFirst
' Saisir le nombre de record
NbRecord = Rs.RecordCount
' Initialize random-number generator.
Randomize
' Définir la position a atteindre
Pos = Int((NbRecord * Rnd))
' Se positionner au record aléatoire
Rs.Move (Pos)
' Afficher le champ2
Response.Write rs("Nom")
End If
' Fermeture du recordset
Rs.Close
' Fermeture de la connection
MyConn.Close
' Destruction des instances
Set MyConn = Nothing
Set rs = Nothing
%>
Référence: Une partie du code source reproduit ci-dessus est extraite du site asp-php.net http://www.asp-php.net/
|
|
Dernière mise à jour : ( 21-06-2006 )
|