Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
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: 8897
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


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Amazon alza a 220 miliardi le stime sugl...
World of Warcraft e Dungeons & Drago...
AXOL Server ridisegna l'infrastruttura d...
MSI ha ucciso AMD EXPO ULL? High-Efficie...
Falso Portale dell'Automobilista ruba pa...
Apple chiude il miglior trimestre di giu...
Sony tira dritto sull'addio ai dischi Pl...
I robot di Google adesso lavorano in squ...
1 miliardo di utenti al giorno: il nuovo...
Broadcom rilascia patch per cinque vulne...
Dalle Fat alle micro e-bike, Engwe ha sc...
L'ossessione per l'IA costa a Zuckerberg...
'Abbiamo le tue foto e la tua cronologia...
Sony rassicura su PS5: memoria assicurat...
Batterie allo stato solido sempre pi&ugr...
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: 14:41.


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