array di immagini

  • Creatore Discussione Creatore Discussione delgius
  • Data di inizio Data di inizio

delgius

Utente Attivo
2 Nov 2007
31
0
0
ciao a tutti e buon anno
ho creato questo array di immagini
<%
Dim rotazione(3)
rotazione(0) = "<img src=""img1.jpg"" width=""140"" height=""100"" />"
rotazione(1) = "<img src=""img2.jpg"" width=""140"" height=""100"" />"
rotazione(2) = "<img src=""img3.jpg"" width=""140"" height=""100"" />"
rotazione(3) = "<img src=""img4.jpg"" width=""140"" height=""100"" />"

For i = 0 to UBound(rotazione)
Response.Write rotazione(i) & "<br/><br/>"
Next
%>

Adesso vorrei far ruotare le immagini, cioè farle scambiare di posizione, però non riesco a trovare lo script.
Protreste aiutarmi per favore?
Grazie
:confused:
 
Credo ti convenga memorizzare le immagini in un database (alludo al percorso) e fare l'estrazione con ordinamento casuale.

Con MySQL è semplicissimo:

SELECT immagine FROM immagini ORDER BY RAND()

Ciao!
 
Ciao e grazie...
ho fatto come dici tu, ho inserito le immagini in un database e poi nella pagina asp ho scritto

<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/rot.mdb")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT immagini FROM imm ORDER BY RAND()", conn
Do while NOT RS.EOF
%>
<%
Dim immagini
immagini=rs("immagini")
response.write(immagini)
%><br/><br/>

Però non funziona sia dirmi dove ho sbagliato?:confused::confused:
Grazie
 
Hai usato Access: quel'istruzione è per MySQL :)

Con Access devi ragionare un po diversamente per visualizzare record random e devi gestirlo col Recordset, non con SQL.

Un esempio:

<%
rs.Open "SELECT * FROM tabella", cn, 1
rs.MoveFirst
Randomize()
rs.Move Rnd * CInt(rs.RecordCount) - 1
Response.Write rs("campo")
rs.Close
%>

L'ho scritto a memoria... testalo!

Ciao ;)
 
Allora...
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>

<body>
<%

Dim Conn

Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/rot.mdb")

rs.Open "SELECT immagini FROM imm", cn, 1
rs.MoveFirst
Randomize()
rs.Move Rnd * CInt(rs.RecordCount) - 1
Response.Write rs("immagini")
rs.Close
%>

<br/><br/>
</body>
</html>

NON FUNZIONA, PERCHè?:confused::confused::confused:
 
Ciao, quello che io vorrei realizzare è una colonna costituita da 10 banner i quali si scambiano di posizione ad ogni click.
vedi la colonna destra di questo sito (è in giapponese) e noterai quello che intenderei fare con asp (se mai ci riuscirò)
http://www.materanomachi.com

:confused:
 
il problema è che conosco molto poco mysql!!!
Allora converrebbe usare direttamente php, tu che ne pensi?
Ciao
 
Ma no!

ASP va benissimo ed una volta che lavori in ASP e vuoi usare MySQL non vedo perchè dovresti passare a PHP!

Access dispone della funzione RND a cui passi come parametro un campo numerico.

In sostanza:

SELECT campo FROM tabella ORDER BY RND(id)

Se esegui la query direttamente su Access funziona, ma da ASP no: non ti da errore ma non effettua l'ordinamento random.

Il modo di sicuro c'è, ma penso sia uno smenamento di sangue e di risorse del server.

In definitiva direi ASP + MySQL :)
 
...quindi sei io volessi riprodurre la situazione del link che ti ho segnalato, usando asp e mysql, dovrei inserire nel db le immagini, scrivere la query e poi nella pagina asp riportare il codice...
Come dovrebbe essere la query e il codice nella pagina?
Grazie
:confused::confused::confused:
 
La pagina che espone i banner dev'essere collegata a MySQL, quindi in definitiva ti conviene fare tutto il sito su MySQL.

La query che estrarrà i dati dalla tabber "banner" sarà:

SELECT * FROM banner ORDER BY RAND()

Se vuoi mostrare ad esempio, solo 5 di 100 banner (che sarebbero un po troppi), puoi scrivere:

SELECT * FROM banner ORDER BY RAND() LIMIT 5
 

Discussioni simili