ID a random su database access

mizar66

Nuovo Utente
21 Set 2007
11
0
0
Ciao a tutti, uso questo script per estrarre a random gli ID del database per inserire delle vetrine sulla mia home page, vorrei però che aprisse solo determinati ID e non di tutto il database, infatti ho creato un campo SI NO per aprire a random solo quelli selezionati "SI"
Infatti ho modificato questa:
SQL = "SELECT * FROM tbl_proposta WHERE col_id >= " & Id
con questa
SQL = "SELECT * FROM tbl_proposta WHERE (col_vetrina = 'SI') AND col_id >= " & Id

sembra che vada però nonmi richiama l'ID che apre la foto.

Questo è lo script che genera il random
<%
SQL = "SELECT Max(col_id) AS MaxId, Min(col_id) AS MinId FROM tbl_proposta"
Set rsMain = Server.CreateObject("ADODB.Recordset")
rsMain.Open SQL, MM_conn_STRING,1,1
Dim maxId, minId, Id
maxId = rsMain("MaxId")
minId = rsMain("MinId")
Randomize
Id = Int((maxId - minId + 1) * Rnd + minId)
SQL = "SELECT * FROM tbl_proposta WHERE col_id >= " & Id
Set rsMain = Server.CreateObject("ADODB.Recordset")
rsMain.Open SQL, MM_conn_STRING,1,1
%>

E questo è lo script che apre la foto:

<%
'SQL = "SELECT * FROM tbl_proposta"
'Set rsMain = Server.CreateObject("ADODB.Recordset")
'rsMain.Open SQL, MM_conn_STRING,1,1
If NOT rsMain.BOF AND NOT rsMain.EOF then
If rsMain("col_approvafoto") = "s" Then
If Id <> "" Then
aryFileType = split("jpg,jpeg,gif",",",-1)
numFileLoopCounter = Ubound(aryFileType)
strFileStatus = "<img src='immagini/nofoto.gif' width='155' height='105' border='0' class ='corner iradius16'>"
set fs=CreateObject("Scripting.FileSystemObject")
Do while numFileLoopCounter>-1
thepath = Server.MapPath("public/foto/a"& Id & "." & aryFileType(numFileLoopCounter))
set fs=CreateObject("Scripting.FileSystemObject")
If fs.FileExists(Server.MapPath("public/foto/a"& Id & "." & aryFileType(numFileLoopCounter))) then
strFileStatus = "<img src=""public/foto/a"& Id & "." & aryFileType(numFileLoopCounter) & """ width='155' height='105' border='0' class ='corner iradius16'>"
Exit Do
End if
numFileLoopCounter = numFileLoopCounter-1
Loop
End If
response.write(""&strFileStatus&"")
End If
%>

Le foto le apre ma non coincidono con l'ID che viene assegnato da randomize.

Secondo voi cosa ho sbagliato? Grazie in anticipo.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
potresti provare ad inserire un Response.Write Id
in diversi punti dello script per vedere se il valore cambia durante l'esecuzione.
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
grazie per la risposta, ho sostituito il sistema di inserimento della foto, semplificando notevolmente il sistema, però non riesco a richiamare l'Id all'interno della variabile:
If objFile.FileExists (Server.MapPath("public/foto/a"& Id &".jpg")) Then

come faccio ad inserire <% response.write(rsMain("col_id"))%>. all'interno di questa variabile?

questo è lo script che mi richiama la foto:
<%
Dim objFile
Set objFile = Server.CreateObject ("Scripting.FileSystemObject")
If objFile.FileExists (Server.MapPath("public/foto/a&(rsMain('col_id'))&.jpg")) Then
%>
<img src="public/foto/a<% response.write(rsMain("col_id"))%>.jpg" width="155" height="105" border="0" class ="corner iradius16">
<%
Else
%>
<img src="immagini/nofoto.gif" width="155" height="105" border="0" class ="corner iradius16">
<%
End If
Set objFile = Nothing
%>

Grazie.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
scusa, il random id viene eseguito su degli id effettivamente esistenti, giusto?

In pratica ad ogni ID vi e assegnata una immagine, giusto?

Se io genero l'id casuale (prelevato comunque da un id esistente) e successivamente con una stupida query recupero il valore del campo ove vi è memorizzato il nome del file, non evito tutto quel codice superfluo e lo sostituisco con questo?

Codice:
<img src="public/foto/a<% response.write(rsMain("nome_immagine"))%>.jpg" width="155" height="105" border="0" class ="corner iradius16">

dubbio, ma il nome del file è un numero identico all'id? perchè se e così puoi fermarti alla sola generazione dell'id casuale.
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
Problema: il nome del file è un numero identico all?Id !
dove ld è generato da randomize su un database di oltre 420 Id.

In pratica dovrei fare una vetrina imm. sull' Home page, dove dal gestionale seleziono gli Id da aggiungere in questa Vetrina, (questo l'ho già fatto), sulla vetrina c'è l'annuncio (quello va bene) e la foto, dove la foto ha il nome dell' Id es(241.jpg) .
Solo che non riesco ad inseire lId per aggiungere la foto.
Help !
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Mizar,
ho provato il tuo script su un mio db quello relativo al random id e funziona.

Ho una domanda, se io recupero l'id 250, in quella riga vi sono anche le info sull'immobile o sono su un'altra tabella?
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
Bene, il solito Id la solita tabella, tbl_proposta qui c'è tutto il resoconto dell' immobile.
L'Id dell'annuncio è l'Id della foto, quindi deve coincidere.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Modifica queste info:
nome del database e percorso: /mdb-database/db.mdb
nome del campo: objRs("caratteristiche_immobile") con quello del tuo db

Codice:
<%

' mi connetto al DB
Dim strConnect
	strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/db.mdb") 


' genero un id random
Set rsMain = Server.CreateObject("ADODB.Recordset")
	SQL = "SELECT Max(col_id) AS MaxId, Min(col_id) AS MinId FROM tbl_proposta"
	rsMain.Open SQL, strConnect,1,1
Dim maxId, minId, Id
	maxId = rsMain("MaxId")
	minId = rsMain("MinId")
Randomize
	Id = Int((maxId - minId + 1) * Rnd + minId)
	rsMain.Close
Set rsMain = Nothing ' chiudo il recordset



' recupero le info sull'immobile	
Set objRs = Server.CreateObject("ADODB.Recordset")
	strSQL = "SELECT * FROM tbl_proposta WHERE col_id = "&Id
	objRs.Open strSQL, strConnect
If NOT objRs.EOF Then ' se presente visualizzo
	caratteristiche_immobile = objRs("caratteristiche_immobile")
End If
	objRs.Close
Set objRs = Nothing ' chiudo il recordset


%>
Caratteristiche: <%=caratteristiche_immobile%><br />
Immagine: <img src="/public/foto/<%=id%>.jpg" width="155" height="105" border="0" class ="corner iradius16"><br />

Dicci cosa è successo.!.!

PS: ho provato il sopra indicato script su un DB personale e le info combaciavano con l'ID randomizzato. Se le foto non coincidono forse perchè hanno il nome errato.
 
Ultima modifica:

mizar66

Nuovo Utente
21 Set 2007
11
0
0
Paolo, Grazie per il tuo aiuto,
Lo scrip va bene fino ad un certo punto, infatti quello che tu hai postato lo avevo già fatto, il problema è sulla verifica del file, in sostanza dovrebbe aprire il file SOLO se è presente, nel caso non ci fosse la foto deve aprire un logo preselezionato (nofoto.jpg)
il randomize va bene, quello che non va è la seconda parte dello script:
cioe questo:

<%
Dim objFile
Set objFile = Server.CreateObject ("Scripting.FileSystemObject")
If objFile.FileExists (Server.MapPath("public/foto/a"& Id &".jpg")) Then
%>
<img src="public/foto/a<% response.write(rsMain("col_id"))%>.jpg" width="155" height="105" border="0" class ="corner iradius16">
<%
Else
%>
<img src="immagini/nofoto.gif" width="155" height="105" border="0" class ="corner iradius16">
<%
End If
Set objFile = Nothing
%>

la parte in grassetto è quella importante.
Grazie.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
ci credi che solo ora ho capito qual'era il vero problema?
Prova questo script, ricorda che devi inserite il percorso assoluto del file:

Codice:
<%

Dim FileObject, VerificaEsistenza
Set FileObject=CreateObject("Scripting.FileSystemObject")
VerificaEsistenza = FileObject.FileExists("C:\Inetpub\www.miosito.com\public\foto\"& id &".jpg")
Set FileObject=Nothing

If VerificaEsistenza = True Then

	Response.Write("Si esiste")

Else
	
	Response.Write("No, non esiste")

End If

%>

...ovviamente personalizzatelo a tuo piacimento. (Testato in locale funzia perfettamente)
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
Grazie Paolo, ho nontato che il problema sta qui:
strSQL = "SELECT * FROM tbl_proposta WHERE (col_vetrina = 'SI') AND col_id >= " & Id

infatti le foto che apre dove l?ID non corrsisponde esattamente alla foto è dovuto da un errore di interpretazione di questa stringa, provando a togliere WHERE (col_vetrina = 'SI') lo script gira perfattamente. ecco l'esempio sul web: http://www.nonsolochianti.it/a.asp
come posso gestire ora questa selezione?
grazie ancora.
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
tranquillo Paolo, è abbastanza semplice solo che è difficile da spiegare:
Lo script deve aprire dei il file che randomize sceglie.
Il file che apre contiene annuncio e foto di un immobile.
La foto che apre deve essere l'Id relativo all'annuncio.

Dimmi di cosa hai bisogno per verificare l'errore, comunque per me il problema sta qui:
strSQL = "SELECT * FROM tbl_proposta WHERE (col_vetrina = 'SI') AND col_id >= " & Id

infatti se faccio cosi va tutto bene:
strSQL = "SELECT * FROM tbl_proposta WHERE col_id = "&Id

secondo te deve sta l'errore?
se hai bisogno del file intero fammi sapere.
Per stasera chiudo ci risentiamo domani.
Grazie, ciao.
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
ciao Paolo, sto ancora battagliando con questo script, per fortuna credo di aver capito dove sta il vero problema, confermado quello che avevo anticipato nei precednti post. Ecco qua:
strSQL = "SELECT * FROM tbl_proposta WHERE col_id = " & Id
così va bene, però fa il random di tutti gli ID

strSQL = "SELECT * FROM tbl_proposta WHERE (col_vetrina = 'SI') AND col_id >= " & Id
così invece fa il random solo degli ID selezionati "SI" però non apre la foto giusta.

Quindi dobbiamo lavorare solo su questa riga di codice:
strSQL = "SELECT * FROM tbl_proposta WHERE col_id = " & Id
riuscendo a far randomizzare solo gli ID che hanno sulla cella col_vetrina l'opziopne "SI"

Grazie a tutti in anticipo.
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
555
13
18
Italy
www.caprioli.info
Mizar, scusa se ti ho trascurato ma ho davvero avuto poco tempo.

Probabilmente hai scorperto l'arcano, avevo pensato ad un'alternativa ma puoi è fallita miseramente.

Il primo di noi che ne vien fuori pubblichi la soluzione :mavieni::mavieni::mavieni::beer::beer::byebye::byebye::faraone::gun::boxing:
 

mizar66

Nuovo Utente
21 Set 2007
11
0
0
Lungo lavoro ma con ottimi risultati.. ci sono ruscito:mavieni::mavieni:
Ecco lo script che genera id a random predefiniti con l'opzione "SI" e con relativa foto associata.
Questo script è ottimale per le agenzie immobiliari, mi raccomando fatene buon uso e soprattuto vi prego di non togliere l'autore. :)
Ciao a tutti.
Maurizio Tiranti

<HTML>
<HEAD>
<TITLE>Script che genera id a random preselezionati da una opzione</TITLE>
<META NAME="AUTHOR" CONTENT="Maurizio Tiranti">
<meta http-equiv="Content-Language" content="it">
<link rel="stylesheet" type="text/css" href="tema.css">
<script>
function ApriFoto(theUrl,w,h){
window.open(theUrl,'i','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width='+w+',height='+h+',top=100,left=100')
}
</script>
<script>
function Apri(theUrl,w,h){
window.open(theUrl,'i','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width='+w+',height='+h+',top=100,left=100')
}
</script>
<script type="text/javascript" src="justcorners.js"></script>
<script type="text/javascript" src="corner.js"></script>
</HEAD>
<BODY>
<div align="center">
<br />
<%
' ADO Constant. Non Cambiare questo
Const adCmdText = &H0001
Dim query, connStr
query = "select * FROM tbl_proposta WHERE col_vetrina = 'SI'"
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Server.MapPath("public/agenzia/database.mdb")
' Apro database
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open query, connStr, 3, , adCmdText
' Genero il numero random number dal totale numero dei records
Dim intRnd
Randomize Timer
intRnd = (Int(RND * rs.RecordCount))
' Ora sposto il cursore a numero record casuali
rs.Move intRnd
%>

<table width="200" border="1" cellspacing="1" cellpadding="1"><tr><td align="center">
<a href="javascript:Apri('anteprima.asp?id=<%=rs("col_id")%>','770','500')" title="<%=rs("col_tipologia")%> in <%=rs("col_contratto")%> a <%=rs("col_provincia")%>">
<font size="1" color="#000000" face="Arial">
ID: <%=rs("col_id")%><br />
Rif: <%=rs("col_riferimento")%><br />
<%=rs("col_provincia")%><br />
<div align="left"><%=rs("col_messvetrina")%></div><br />
</font>

<%
Dim objFile
Set objFile = Server.CreateObject ("Scripting.FileSystemObject")
If objFile.FileExists (Server.MapPath("public/foto/a"& rs("col_id") &".jpg")) Then
%>
<img src="public/foto/a<%=rs("col_id")%>.jpg" width="155" height="105" border="0" class ="corner iradius16">
<%
Else
%>
<img src="immagini/nofoto.gif" width="155" height="105" border="0" class ="corner iradius16">
<%
End If
Set objFile = Nothing
%>
</a></td></tr></table>

<%
rs.Close
Set rs = Nothing
%>

</div>
</BODY>
</HTML>
 
Discussioni simili
Autore Titolo Forum Risposte Data
crealatualista [PHP] random record database PHP 8
pup3770 Popolare random Database - per test MySQL 1
M Random Immagini + Testi PHP 13
M Numero random non ripetitivo Java 2
M [PHP] Estrazione random con nomi presi dal db PHP 22
R [PHP] Creare sistema random PHP 3
G Generazione di numeri random in PHP PHP 5
Darkmoon63 Random acoount Annunci servizi di Social Media Marketing 4
G Chiamata ajax restituisce errore random Ajax 1
L [HTML] Aiuto con immagini random HTML e CSS 1
F [Javascript] Prodotti Random Homepage Javascript 4
A [Javascript] Random in ricerca Javascript 8
M Query mysql per selezioni random in categorie mirate PHP 4
L Estrazione Articoli Random da Tabella senza doppioni PHP 1
B imageme.ga crea immagini di prova random o personalizzate Webdesign e Grafica 1
D php estrazione random nomi e senza ripetizione PHP 14
JackIlPazzo Estrarre voce random e verificare se è corretta PHP 8
A random post with con Thumbnails WordPress 1
David92 Numeri Random Javascript 1
enzonero creare testata con foto in random WordPress 4
F Prodotti caricati a random Javascript 1
L testare una paginazione "Creazione di 1000 dati random in una tabella" PHP 7
F Codice Random Javascript con slideshow Javascript 3
P inserimento data nascita e codice random PHP 4
IImanuII mysql query random riga PHP 5
lsnight [risolto] Div random ogni refresh PHP 19
Emix Generazione random barcode PHP 2
L login a random PHP 1
giancadeejay Script immagini random -voglio inserire i link alle immagini PHP 11
C [RISOLTO]Numeri random al termine di un link http Javascript 27
D banner random Javascript 0
voldemort Numeri random in Java Java 1
M PHP Random PHP 1
P Effetto Random su più immagini Javascript 1
M Selezionare una pagina html random Javascript 1
J Random Text Generator Javascript 0
purno pagina random Javascript 7
voldemort Numero random compreso tra min e max ASP.NET 1
G Immagini random stagionali PHP 8
borgo italia IP random? PHP 5
M Risultati random MySQL e paginazione PHP 2
D Random img+dissolvenza Flash 3
P estrarre notizia e caricare random PHP 1
U onclick immagine random con testo non random Javascript 20
L Function random PHP 2
I Random pick in pagina asp Classic ASP 5
borgo italia funzione scrivi ore e piccolo random Snippet PHP 0
R Js Random per swf Javascript 0
K immagini random da tabella sql PHP 2
K immagini random PHP 2

Discussioni simili