Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
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


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
Amazon, ecco i super sconti del weekend:...
Scovare un bug di sicurezza sui disposit...
Offerta Amazon su NordVPN: proteggi 10 d...
ECOVACS DEEBOT X8 PRO OMNI in offerta su...
Scope elettriche Tineco in offerta su Am...
Offerta Amazon sui robot EUREKA J15 Ultr...
Chrome disattiverà automaticament...
Tornano tutti e 4 i colori disponibili p...
Super sconto su iPhone 16: Amazon abbass...
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: 06:34.


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