PDA

View Full Version : Record univoci


Carmen
14-05-2004, 13:48
Ciao,

Qualcuno può indicarmi un buon metodo per realizzare l'estrazione di due record per volta da un DB che non siano univoci?

Mi spiego meglio: Devo realizzare una pagina la dove girano due banner pescati da un DB, dovrei fare in modo che non compaiono due banner uguali per volta...


Ciao :rolleyes:

cionci
14-05-2004, 15:46
Per definizione se estrai due record per volta da una tabella non possono essere univoci...

Carmen
15-05-2004, 11:44
Ci sarà però un qualcosa per poter avere due record estratti casualmente fra quelli presenti purche non siano tutte e due identici.

fabio_tarantino
15-05-2004, 12:06
Cionci ha ragione...

ma il tuo problema lo risolvi a livello applicativo.

Diciamo che nel tuo db hai una tabella con un campo id e un campo banner. Se il campo id è una chiave primaria ovviamente nella tabella non possono coesistere due record con id uguale.

Da quello che ho capito devi tirare fuori da questa tabella due record qualunque basta che non abbiano id uguale

es: SELECT * FROM tabella WHERE (id=x) OR (id=y)

x e y nel tuo caso devono essere diversi.

Il controllo che siano diversi lo devi fare nella tua applicazione.

Ad esempio x e y li puoi tirare fuori da un generatore random e prima di richiamare la funzione di estrazione dal db (a cui passerai x e y) ti fai un cotrollo banale del tipo:

if (x==y) then x=y+random(10);

Carmen
15-05-2004, 12:28
Bene, farò qualche prova in merito.

La procedura random credo che dovrebbe essere fatta forse sul numero massimo di record contenuti nel db.

Es. se nel db vi siano 20 record dovrebbero essere generati due random da 1 a 20

Fenomeno85
16-05-2004, 20:23
dipende da come estrapoli i dati, comunque la possibilità di estrarre casualmente la stessa tupla è 1/n in cui n è il numero di elementi.

MEMBRO DEL GRAN CONSIGLIO DELLE CACCOLEVERDI

~§~ Sempre E Solo Lei ~§~

cionci
17-05-2004, 13:39
Scusa, ma non puoi tirare casualemnte (da programma) i due numeri sul numero totale di record a livello di applicazione ?

Fai una select su tutti i record...li scorri tutti e visualizzi solamente quelli che hai tirato su casualmente...

Fenomento85: dovresti eliminare una delle due immagini dalla firma ;)

monkey72
18-05-2004, 09:55
se devessi estrarre due id da 1 a 20 userei una funzione che mi dia il primo id casualmente e poi generi l'altro ancora casualmente ma ricorsivamente fino a quando non è diverso dal precedente generato

cionci
18-05-2004, 10:00
Originariamente inviato da monkey72
se devessi estrarre due id da 1 a 20 userei una funzione che mi dia il primo id casualmente e poi generi l'altro ancora casualmente ma ricorsivamente fino a quando non è diverso dal precedente generato
Se sono due è facile... Si tira su il primo casualmente... Si tira su il secondo...se è uguale al primo si incrementa di 1 (in modulo 20)...

monkey72
18-05-2004, 10:07
così è sicuro che il secondo è diverso dal primo... però perdonami cionci... non è propriamente random in questo caso... :)

cionci
18-05-2004, 10:27
Certo che è random...anche se ovviamente il numero successivo al primo ha una possibilità in più di essere estratto...

Altrimenti se si vuole fare propriamente random:

- si tira su il primo su N e lo chiamo X
- si tira su il secondo su N-1 e lo chiamo Y, se Y >= X allora Y = Y + 1; Y = Y modulo N

Fare un ciclo per tentare un'estrazione diversa non è una politica molto corretta ;)

fabio_tarantino
18-05-2004, 10:33
Originariamente inviato da cionci
Certo che è random...anche se ovviamente il numero successivo al primo ha una possibilità in più di essere estratto...

Altrimenti se si vuole fare propriamente random:

- si tira su il primo su N e lo chiamo X
- si tira su il secondo su N-1 e lo chiamo Y, se Y >= X allora Y = Y + 1; Y = Y modulo N

Fare un ciclo per tentare un'estrazione diversa non è una politica molto corretta ;)

Scusa,
ma se la seconda estrazione la fai in un set che non contiene X allora Y è sicuramente diverso da X

cionci
18-05-2004, 10:47
Originariamente inviato da fabio_tarantino
Scusa,
ma se la seconda estrazione la fai in un set che non contiene X allora Y è sicuramente diverso da X
Certo...ma non ti sembra più facile come ho fatto io che farsi un vettore e compattarlo quando è uscito un numero ?

Pseudocodice:

X = pseudocasuale su N;
Y = pseudocasuale su N-1;
se Y > X allora Y = (Y + 1) modulo N-1;

fabio_tarantino
18-05-2004, 10:50
Si si sono d'accordo!

monkey72
18-05-2004, 11:19
boh... mi sento confusa :confused:
abbiate pazienza ma la mia mente non è più tanto allenata :)
ma se Y è un numero casuale nell'insime che non contiene X a che mi servono il controllo e l'assegnazione successiva
se Y > X allora Y = (Y + 1) modulo N-1?
eppoi se Y<N l'assegnazione Y = (Y + 1) modulo N-1 = Y + 1 allora a cosa mi serve il mod?
o non ci sto con la testa ma non ci arrivo... :wtf:

fabio_tarantino
18-05-2004, 11:37
Originariamente inviato da monkey72
boh... mi sento confusa :confused:
abbiate pazienza ma la mia mente non è più tanto allenata :)
ma se Y è un numero casuale nell'insime che non contiene X a che mi servono il controllo e l'assegnazione successiva
se Y > X allora Y = (Y + 1) modulo N-1?
eppoi se Y<N l'assegnazione Y = (Y + 1) modulo N-1 = Y + 1 allora a cosa mi serve il mod?
o non ci sto con la testa ma non ci arrivo... :wtf:

ehm... mi sa che ti ho confuso io...

Dunque senza considerare l'insieme dei numeri:

X è tirato su in modo random
Anche Y è tirato su in modo random: ovviamente ci sono 2 casi
da considerare

1) se Y!=X -> no problem!
2) se Y==X ->

2a) Y==1 -> Y = Y + qualcosa_random
2b) Y==n -> Y = Y - qualcosa_random

qualcosa_random la fai come vuoi a mio giudizio

cionci
18-05-2004, 11:42
"pseudocasuale su N" singifica estrarre un numero pseudocasule fra 1 e N...in questo caso 20...

"pseudocasuale su N-1" significa estrarre un numero fra 1 e 19 e quindi potrebbe comparire nuovamente il primo numero estratto...

Quindi se è maggiore o uguale a X si aggiunge 1 per escludere X dall'estrazione ;)

In effetti il modulo 20 non serve a niente...

cionci
18-05-2004, 11:43
Originariamente inviato da fabio_tarantino
2a) Y==1 -> Y = Y + qualcosa_random
2b) Y==n -> Y = Y - qualcosa_random

qualcosa_random la fai come vuoi a mio giudizio
Molto più lungo di quello che ho detto io... Senza considerare che aggiungere o togliere qualcosa di random potrebbe fartelo diventare uguale a X ;)

fabio_tarantino
18-05-2004, 11:58
Originariamente inviato da cionci
Molto più lungo di quello che ho detto io... Senza considerare che aggiungere o togliere qualcosa di random potrebbe fartelo diventare uguale a X ;)

veramente è il contrario!
Guardati bene cosa ho scritto!

E poi questo Y >= X allora Y = Y + 1 non è corretto visto che se Y=n sei fregato

monkey72
18-05-2004, 12:25
Originariamente inviato da cionci
"pseudocasuale su N" singifica estrarre un numero pseudocasule fra 1 e N...in questo caso 20...

"pseudocasuale su N-1" significa estrarre un numero fra 1 e 19 e quindi potrebbe comparire nuovamente il primo numero estratto...

Quindi se è maggiore o uguale a X si aggiunge 1 per escludere X dall'estrazione ;)

In effetti il modulo 20 non serve a niente...
mi sento meglio ora, pensavo di aver perso anche le minime cognizioni... xò perdonatemi... mi sembra una soluzione troppo complicata x un problema abbastanza semplice, non capisco xchè aggiungere 1 ad Y se è già > X... eppoi xchè togliere l'ultimo elemento dall'insieme e non quello già estratto? mi sfugge il senso... :(

cionci
18-05-2004, 13:40
monkey72: non c'è un "insieme"...sono numeri ;) Cioè non c'è un vettore di 20 elementi...

Viene aggiunto 1 quando maggiore di 20 perchè se Y fosse maggiore di X allora Y non potrebbe mai essere 20 ;)

Ti faccio une sempio in C che credo tu conosca:

srand((unsigned)tim(NULL));

int x = rand()%20 + 1; //x compreso fra 1 e 20
int y = rand()%19 + 1; //y compreso fra 1 e 19
if(y >= x)
++y;
//ora y è compreso fra 1 e 20, ma diverso da x ;)

cionci
18-05-2004, 13:41
Originariamente inviato da fabio_tarantino
E poi questo Y >= X allora Y = Y + 1 non è corretto visto che se Y=n sei fregato
E perchè sono fregato ? Y non è mai 20, ma al max 19 ;)

monkey72
18-05-2004, 14:04
ok sull'utilizzo del modulo in questo senso, solo per dare un limite superiore per la f.ne rand, e ok anche i +1 xchè il limite inferiore di rand è 0, xò... ancora non capisco perchè tu debba poter scegliere Y solo fra 19 elementi e poi forzarla a dover in qualche caso assumere il valore 20
io farei così:

int x = rand()%20 + 1; //x compreso fra 1 e 20
int y = rand()%20 + 1; //y compreso fra 1 e 20
if(y = x)
y = (y+1) % 20;

dr.stein
18-05-2004, 14:08
é corretto quello che dice cionci:

La realtà presa in esame prevede che si estragga un elemento casuale da un'insieme di 20 elementi. ovvero, ogni elemento ha 1/20 di probabilità di essere estratto.

Il secondo passaggio prevede di estrarre un elemento casuale da un'insieme di 19 elementi. Ovvero, ogni elemento ha 1/19 di probabilità di essere estratto.

Estrarre sempre da 1 a 20 e ripetere il ciclo fino a che il secondo estratto è diverso dal primo è un'errore per due motivi:

1) La seconda estrazione prevede sempre 1/20 di possibilità di uscire per ogni elemento, sebbene gli elementi siano solo 19!

2) Esso è -POTENZIALMENTE- (sebbene non succederà mai) un ciclo infinito. Infatti, potrebbe CASUALMENTE succedere che venga estratto sempre lo stesso numero. Alcuni compilatori molto evoluti potrebbero addirittura segnalare errore!

Estraendo invece da 1 a 19 e incrementando di 1 nel caso sia >= al primo estratto, invece, si è ricreata perfettamente la realtà presa in esame.

Pongo all'attenzione un'altra osservazione, che non centra nulla con l'algoritmo di estrazione: Lavorando su db, nessuno ci assicura che fra gli ID non ci siano buchi...................

monkey72
18-05-2004, 14:08
Originariamente inviato da cionci

int x = rand()%20 + 1; //x compreso fra 1 e 20
int y = rand()%19 + 1; //y compreso fra 1 e 19

anzi mi sta venendo il dubbio che così X può assumere anche valore 21!!!!
xò questi sono dettagli... ;)

cionci
18-05-2004, 14:28
No...21 no...

Il modulo è il resto della divisione intera per 20... Quindi è compreso fra 0 e 19...+1...è quindi compreso fra 1 e 20 ;)

cionci
18-05-2004, 14:30
Originariamente inviato da monkey72

int x = rand()%20 + 1; //x compreso fra 1 e 20
int y = rand()%20 + 1; //y compreso fra 1 e 20
if(y = x)
y = (y+1) % 20;

Per carità...questo va bene, ma l'elemento successivo ad x ha probabilità 2/20 di essere estratto nella seconda estrazione...

fabio_tarantino
18-05-2004, 14:32
Vi fate le canne?? :D

x cionci:

int x = rand()%20 + 1; //x compreso fra 1 e 20
int y = rand()%19 + 1; //y compreso fra 1 e 19
if(y = x)
y = (y+1) % 20;

Quello che hai scritto implica che
x può assumere valori tra 1 e 20
y può assumere valore 20 MAI

se si estre x=19 e y=19 -> y=0

quindi non puoi mai avere (x,y)=(19,20)

anzi avresti (19,0) // i numeri del questito sono da 1 a 20

dr.stein

Ma dove lo vedi il ciclo infinito che i compilatori evoluti possono identificare?

cionci
18-05-2004, 14:39
fabio_tarantino: quello che hai copiato è il codice di monkey72, ha bisogno di una ritoccatina). il mio codice è questo...ed y può assumere anche il valroe di 20 se x è 19 ;)
Originariamente inviato da cionci

srand((unsigned)tim(NULL));

int x = rand()%20 + 1; //x compreso fra 1 e 20
int y = rand()%19 + 1; //y compreso fra 1 e 19
if(y >= x)
++y;
//ora y è compreso fra 1 e 20, ma diverso da x ;)

dr.stein
18-05-2004, 14:43
Originariamente inviato da fabio_tarantino

dr.stein

Ma dove lo vedi il ciclo infinito che i compilatori evoluti possono identificare?

Estraggo un numero casuale da 1 a 20: Esce 5

Estraggo un numero casuale da 1 a 20: Se è diverso da 5 ok, altrimenti ripeto questo passaggio.

Se esce sempre 5 è un ciclo infinito!

cionci
18-05-2004, 14:46
Originariamente inviato da dr.stein
Estraggo un numero casuale da 1 a 20: Esce 5

Estraggo un numero casuale da 1 a 20: Se è diverso da 5 ok, altrimenti ripeto questo passaggio.

Se esce sempre 5 è un ciclo infinito!
E per Murphy è una cosa da evitare di fare...sempre ;)

dr.stein
18-05-2004, 14:49
Originariamente inviato da cionci
E per Murphy è una cosa da evitare di fare...sempre ;)

Giusto! ;)

E non pensiate che sia poi così assurda la possibilità che si verifichi una cosa del genere....

mettiamo il caso che il seme di randomizzazione per un qualsiasi motivo che sfugge al nostro controllo rimanga costante.... il numero estratto rimarra sempre uguale....

BAM!

Murphy colpisce ancora! :D

fabio_tarantino
18-05-2004, 14:52
Originariamente inviato da dr.stein
Estraggo un numero casuale da 1 a 20: Esce 5

Estraggo un numero casuale da 1 a 20: Se è diverso da 5 ok, altrimenti ripeto questo passaggio.

Se esce sempre 5 è un ciclo infinito!

Ma tu hai letto un algoritmo del genere in questi post?

cionci
18-05-2004, 14:53
Originariamente inviato da dr.stein
mettiamo il caso che il seme di randomizzazione per un qualsiasi motivo che sfugge al nostro controllo rimanga costante.... il numero estratto rimarra sempre uguale....

Infatti ;)

dr.stein
18-05-2004, 14:56
Originariamente inviato da fabio_tarantino
Ma tu hai letto un algoritmo del genere in questi post?

Si! ;)

Originariamente inviato da monkey72
se devessi estrarre due id da 1 a 20 userei una funzione che mi dia il primo id casualmente e poi generi l'altro ancora casualmente ma ricorsivamente fino a quando non è diverso dal precedente generato

monkey72
18-05-2004, 15:32
Originariamente inviato da cionci
fabio_tarantino: quello che hai copiato è il codice di monkey72, ha bisogno di una ritoccatina). il mio codice è questo...ed y può assumere anche il valroe di 20 se x è 19 ;)
x cionci: quello che ha copiato è un mix fra quello tuo e quello mio... ;)

cionci
18-05-2004, 15:36
Vero ;)

monkey72
18-05-2004, 15:37
Originariamente inviato da cionci
Per carità...questo va bene, ma l'elemento successivo ad x ha probabilità 2/20 di essere estratto nella seconda estrazione...
ok... ora ho capito... col tuo si scongiura completamente il rischio di un loop :)

monkey72
18-05-2004, 15:39
Originariamente inviato da dr.stein
Si! ;)
dr. si calmi... ho capito, grazie ;)

cionci
18-05-2004, 15:52
Originariamente inviato da monkey72
ok... ora ho capito... col tuo si scongiura completamente il rischio di un loop :)
No...non ci sono loop nemmeno con il tuo (con quello che avevi previsto inizialmente, come quotato da dr.stein, invece ci poteva essere un loop)... Solamente le probabilità non sono come dovrebbero essere ;) Con il tuo l'elemento X+1 ha probabilità di essere estratto 2/20 invece di 1/19 ;)

dr.stein
18-05-2004, 15:59
Originariamente inviato da monkey72
dr. si calmi

:huh:


... ho capito, grazie ;)

ma non stavo mica rispondendo a te!!! ;)

Carmen
18-05-2004, 16:00
Ciao,

Mi sa tanto che è proprio un bel casino..... comunque grazie a tutti per questo scambio di opinioni....

cionci
18-05-2004, 16:05
Ma quale casino...sono 3 righe di codice !!! Basta sapere come si estra un numero casuale in VBScript...

monkey72
18-05-2004, 16:10
Originariamente inviato da cionci
No...non ci sono loop nemmeno con il tuo (con quello che avevi previsto inizialmente, come quotato da dr.stein, invece ci poteva essere un loop)... Solamente le probabilità non sono come dovrebbero essere ;) Con il tuo l'elemento X+1 ha probabilità di essere estratto 2/20 invece di 1/19 ;)
so proprio de coccio oggi!!! ;)

anzi... mi correggo... oggi so più di coccio del normale :D

cionci
18-05-2004, 16:11
Dim x, y, c
Randomize ' Initialize random-number generator.
x = Int((20 * Rnd) + 1)
y = Int((19 * Rnd) + 1)
If y >= x Then
y = y + 1
End If
'Ora apri il DB e fai una select di tutta la tabella
c = 1
While(!rs.EOF() And (c <= x Or c <= y))
If c = x Then
'hai trovato il tuo primo banner (ti metti il link e il nome dell'immagine da parte)
Else If c = y Then
'hai trovato il tuo secondo banner (ti metti il link e il nome dell'immagine da aprte)
End If
rs.MoveNext()
c = c + 1
Wend

dr.stein
18-05-2004, 16:36
Attenzione che così stai dando per scontato che non ci siano buchi fra gli ID!

io farei così:


Dim x,y,max
Randomize ' Initialize random-number generator.

' apri db e fai SELECT COUNT(*) FROM tab_banner
max = 'metti in max il conteggio di quanti banner ci sono in tabella

If max > 2 then
x = Int((max * Rnd) + 1)
y = Int(((max - 1) * Rnd) + 1)
If y >= x Then
y = y + 1
End If
'Ora apri il DB e fai una select di tutta la tabella

for I = 1 to Max
if I = y or I = x Then 'hai trovato il tuo banner (ti metti il link e il nome dell'immagine da parte)
rs.MoveNext()
next
ELSE
'gestisci il caso in cui in tabella ci siano 0 1 o 2 banner - non serve l'estrazione -


buttato li al volo! ;)

cionci
18-05-2004, 16:45
Originariamente inviato da dr.stein
Attenzione che così stai dando per scontato che non ci siano buchi fra gli ID!
Perchè scusa ? Io suppongo che ci siano 20 record nel DB... Altrimenti si potrebbe determinare il numero di record totali presenti con una semplice query ;)

cionci
18-05-2004, 16:49
Scusa, ma che cambia fra il mio ed il tuo ? A parte i numero di record ricavati dalla query...

McK
18-05-2004, 17:02
Ma voi siete pazzi da legare!!! :D :D

A mio avviso è + semplice fare un solo random ed estrarre dal db due elementi consecutivi (c'è da sistemare il caso in cui viene selezionato a random l'ultimo elemento.. però è facilmente evitabile facendo random fino al numero di elementi - 1) :D

Più o meno potrebbe funzionare così:
(PHP)
$result=mysql_query("SELECT * FROM tabella");
N=mysql_num_rows($result);
x=random(N)-1; //Faccio il randon su n-1 elmenti
$banner=mysql_query("SELECT * FROM tabella LIMIT x,x+1);

quindi mi estrare dall'elemento x all'elemento x+1... vale a dire esattamente quei due elementi.

Bo, poi se volete tirarvi seghe mentali fate pure, ma mi sembra un problema fin troppo semplice per stare a complicarsi la vita con codice inutile! :D

McK

cionci
18-05-2004, 17:11
Originariamente inviato da McK
Bo, poi se volete tirarvi seghe mentali fate pure, ma mi sembra un problema fin troppo semplice per stare a complicarsi la vita con codice inutile! :D

Sinceramente non mi sembra tanto inutile... Pensa ad un sito serio... Pensa a delle sponsorizzazioni serie... Pensa ad una ditta che deve vedere sempre la sua "immagine" associata a quella di un'altra ditta... Mi sembra un po' bruttina 'sta cosa ;)

Inoltre hai supposto l'uso di LIMIT (fondamentale nel tuo esempio) che è una prerogativa di MySQL e che in altri DBMS non è presente ;)

dr.stein
18-05-2004, 17:20
Originariamente inviato da cionci
Scusa, ma che cambia fra il mio ed il tuo ? A parte i numero di record ricavati dalla query...

Cambia che ho letto male il tuo codice e lo ho interpretato male! :p (mi ha ingannatto il fatto che non incrementi C! :D)

effettivamente fanno più o meno la stessa cosa! ;)

cionci
18-05-2004, 17:22
Azzz...mi ero scordato di incrementare C ;)

McK
18-05-2004, 17:28
Originariamente inviato da cionci
Sinceramente non mi sembra tanto inutile... Pensa ad un sito serio... Pensa a delle sponsorizzazioni serie... Pensa ad una ditta che deve vedere sempre la sua "immagine" associata a quella di un'altra ditta... Mi sembra un po' bruttina 'sta cosa ;)

Inoltre hai supposto l'uso di LIMIT (fondamentale nel tuo esempio) che è una prerogativa di MySQL e che in altri DBMS non è presente ;)

Mmm a dire il vero le sponsorizzazioni serie non le si gestisce in quel modo, ma attraverso un rating che viene calcolato in base a quello che pagano.
Voglio dire che ad ogni banner è associato un numero (da 0 a quanto caspita ti pare) che indica quanto è "importante" o quanto tempo è fissato da contratto (molti vogliono che il loro banner resti fisso in alto alla prima pagina, o a tutte le pagine).

Comunque, in questo caso farei una selezione dei banner con rating + alto, oppure selezioni tutti i banner e cambi il tempo di esposizione a seconda del rating. Fare una selezione random di due banner è allo stesso livello della mia selezione, anche perchè se ci pensi con il codice che ho scritto prima tutti i banner hanno la stessa probabilità di uscire (vale a dire 2 probabilità su N), che mi sembra già abbastanza serio.

Quindi se si sta parlando di contratti seri, te lo dicono quelli che ti danno i soldi per l'esposizione il tempo di esposizione del loro banner, e l'unico modo che hai per gestirlo è attraverso un rating!

McK

cionci
18-05-2004, 17:36
Chiaro che ci sia un rating....ma allora metti che quelli che estrai siano i vari banner della stessa azienda (l'azienda l'hai già estratta secondo i rating)... Ti sembra bello visualizzare due banner consecutivi ?

Riguardo al codice non mi sembra per niente complesso...comunque era un discorso più ampio che esulava da questo problema specifico... Almeno nella mia visione del problema...

dr.stein
18-05-2004, 17:38
Beh, ma chi ti vieta di applicare questo algoritmo ad un recordset GIA' filtrato per rating ?

McK
18-05-2004, 19:50
nessuno, infatti io non criticavo il vostro codice (non lo farei mai, perchè come sostiene il mio prof. di ingegneria del software, programmare è un arte. Quindi non siamo che artisti, ognuno ha la sua forma d'arte! :D)

Il mio commento era riferito alla lunga discussione su quello che pensavo essere un banale problema. Dalla domanda posta all'inizio pensavo che si chiedesse semplicemente di non mostrare due banner identici, ma non pensavo che ci si riferisse ad un sito professionale.

Quindi restando anche io in una discussione "pazza" :D, continuo con il discorso. Il prendere due record consecutivi in mysql in realtà dipende dall'ordinamento che ne fai, non è detto che i due record consecutivi siano della stessa azienda, se ho capito bene quello che mi avete detto.
Basterebbe fare un ORDER BY qualche campo e prendere due elementi.
Cmq per un sito professionale non credo serva molto un random, il sistema di rating dovrebbe già fornire l'ordine in cui estrarre i banner dal database. Solitamente li si prende tutti e viene cambiato il tempo di visualizzazione, di random c'è solo quel'è l'ordine in cui vengono mostrati (a volte nemmeno quello perchè alcuni nel contratto richiedono che il loro banner sia il primo mostrato... come dire: io ti pago ma tu fai quello che ti dico io!! :D).

McK

dr.stein
20-05-2004, 19:21
articolo sull'argomento:

http://www.webngo.net/aspstuff/articoli/recordrandom.asp?pagina=2

aquilante
21-05-2004, 12:18
Originariamente inviato da dr.stein
articolo sull'argomento:

http://www.webngo.net/aspstuff/articoli/recordrandom.asp?pagina=2



Ti devo parlare per quella cosa di lavoro, ti fai sentire per favore? :)



Per il 3d,
scusatemi.

Saluti