Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Dalla precisione estrema dei componenti alla gestione digitale dei processi: come la piattaforma ServiceNow consente ad Aston Martin Aramco Formula One Team di ottimizzare risorse IT e flussi operativi in un ambiente dove ogni millesimo di secondo conta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-05-2004, 13:48   #1
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
Record univoci

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
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2004, 15:46   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Per definizione se estrai due record per volta da una tabella non possono essere univoci...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2004, 11:44   #3
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
Ci sarà però un qualcosa per poter avere due record estratti casualmente fra quelli presenti purche non siano tutte e due identici.
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2004, 12:06   #4
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
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);
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2004, 12:28   #5
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
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
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 16-05-2004, 20:23   #6
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
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 ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso

Ultima modifica di Fenomeno85 : 16-05-2004 alle 20:26.
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2004, 13:39   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
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
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 09:55   #8
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
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
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 10:00   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
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)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 10:07   #10
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
così è sicuro che il secondo è diverso dal primo... però perdonami cionci... non è propriamente random in questo caso...
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 10:27   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
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
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 10:33   #12
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
Quote:
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
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 10:47   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
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;

Ultima modifica di cionci : 18-05-2004 alle 10:53.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 10:50   #14
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
Si si sono d'accordo!
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 11:19   #15
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
boh... mi sento confusa
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...
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 11:37   #16
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
Quote:
Originariamente inviato da monkey72
boh... mi sento confusa
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...
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
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 11:42   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
"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 è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 11:43   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
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
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 11:58   #19
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
Quote:
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
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2004, 12:25   #20
monkey72
Senior Member
 
L'Avatar di monkey72
 
Iscritto dal: Dec 2001
Messaggi: 1385
Quote:
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...
__________________
lui è il mio amore: "tesò domani ti regalo un guinzaglio lungo 100 km"
monkey72 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Halo: Campaign Evolved, il remake di Com...
Object First annuncia il nuovo Ootbi Min...
IA, workplace e sicurezza per guidare la...
Amazon chiarisce il blackout AWS del 20 ...
I browser agentici non sono ancora matur...
Monitor da sogno per gamer: Alienware QD...
Anche gli LLM possono "rimbecillirs...
Offerte DJI da non perdere: droni e vide...
Anche Redmi ha il suo Pro Max: arriver&a...
Nike Project Amplify, le scarpe che ti m...
LG OLED evo G5 da 48 pollici a soli 839€...
Ricoh ha anticipato l'arrivo di una nuov...
iPhone 17 Pro non ha rivali: la fotocame...
Leica M EV1: il futuro della fotografia ...
Passione retrò: arrivano THEC64 Mini Bla...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v