Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-11-2011, 14:07   #1
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
[SQL] Programma gestione turni

Salve, sto facendo un programma gestionale in PHP per gestire dei turni. Ho due tabelle così formate:

- tabella "personale": tessera | cognome | nome
- tabella "turni": data | orario | persona1 | persona2 | persona3

In PHP devo visualizzare la tabella "turni" riferita ad un dato giorno (WHERE data = aaaa-mm-gg) però vorrei fare in modo di poter visualizzare cognome e nome al posto della tessera, quindi collegare in qualche modo le due tabelle. Ho provato con una join ma senza risultati. La mia query è la seguente:

Codice:
SELECT * FROM turni, personale WHERE turni.persona1 = personale.tessera
Se dopo la select cerco di visualizzare i cognomi (richiamandoli dalla tabella "personale") ovviamente mi visualizza solo quelli riferiti a persona1, però io ho bisogno di visualizzarli uno accanto all'altro in una tabella. Come posso fare?
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2011, 14:59   #2
]Rik`[
Senior Member
 
L'Avatar di ]Rik`[
 
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
secondo me hai impostato male il db, per come hai fatto te, fai conto, se un giorno ti servisse di avere un turno per 4 o 5 persone come faresti?
secondo me la tabella dei turni dovrebbe essere

data-orario-tessera

e replicare la riga X volte, quante sono le persone che hanno il turno
]Rik`[ è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2011, 15:07   #3
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
Quote:
Originariamente inviato da ]Rik`[ Guarda i messaggi
secondo me hai impostato male il db, per come hai fatto te, fai conto, se un giorno ti servisse di avere un turno per 4 o 5 persone come faresti?
secondo me la tabella dei turni dovrebbe essere

data-orario-tessera

e replicare la riga X volte, quante sono le persone che hanno il turno
In realtà nel campo persona1, persona2, persona3 ci stanno i numeri di tessera..

questo è il mio schema:

tabella turni
data | orario | persona1 | persona2 | persona 3
2011-11-01 | 08.00-09.00 | 102 | 103 | 104
2011-11-01 | 09.00-10.00 | 125 | 143 | 112
2011-11-01 | 10.00-11.00 | 135 | 106 | 102
2011-11-01 | 11.00-12.00 | 124 | 165 | 176
I numeri riferiti alle persone sono dei numeri di tessera

tabella personale
tessera | cognome | nome
102 | rossi | mario
103 | bianchi | francesco
104 | verdi | giuseppe

Io vorrei visualizzare la tabella TURNI visualizzando al posto delle tessere i relativi cognomi
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2011, 15:33   #4
]Rik`[
Senior Member
 
L'Avatar di ]Rik`[
 
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
sìsì ho capito il tuo problema, ti stavo ponendo un altro quesito
in ogni caso possibile e immaginabile hai 3 persone per ogni turno? non capita mai che siano 1 o 2, o magari 4 o più?
]Rik`[ è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2011, 15:38   #5
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
Quote:
Originariamente inviato da ]Rik`[ Guarda i messaggi
sìsì ho capito il tuo problema, ti stavo ponendo un altro quesito
in ogni caso possibile e immaginabile hai 3 persone per ogni turno? non capita mai che siano 1 o 2, o magari 4 o più?
No, sono per forza di cose 4 persone per ogni turno
Devo capire se sia fattibile o meno in MySQL (mi parebbe strano non fosse possibile) ed in tal caso cercare un'alternativa.

Ho pensato ad una VIEW ma penso abbia gli stessi problemi.
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2011, 16:10   #6
ConRoe
Senior Member
 
L'Avatar di ConRoe
 
Iscritto dal: Dec 2006
Messaggi: 414
la butto li...

Codice PHP:
$turni    mysql_query("SELECT * FROM turni WHERE data = aaaa-mm-gg");    
    while(
$row mysql_fetch_array($turni)) {
        
/*stampo la tabella normalmente e quando arrivo al punto "incriminato"...*/
        
$persona    mysql_query("SELECT cognome, nome FROM personale WHERE tessera = '$row['tessera']'");
        while(
$row mysql_fetch_array($persona)) {
            echo
"$row['cognome'] $row['nome']";
        }
    } 
...certo che è brutta forte...
__________________

Concluso positivamente con: 2fst4rc, guns81, fernando59, Kewell, Guidoch, coontrol86, Holly_GR, siemens, WildCat Hendrix, Thommy_Yorke, davidep85, fabiannit, semmy83, TheDoctor1983, uazzamerican

"Un androide è per sempre"
ConRoe è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2011, 16:29   #7
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
Quote:
Originariamente inviato da ConRoe Guarda i messaggi
la butto li...

Codice PHP:
$turni    mysql_query("SELECT * FROM turni WHERE data = aaaa-mm-gg");    
    while(
$row mysql_fetch_array($turni)) {
        
/*stampo la tabella normalmente e quando arrivo al punto "incriminato"...*/
        
$persona    mysql_query("SELECT cognome, nome FROM personale WHERE tessera = '$row['tessera']'");
        while(
$row mysql_fetch_array($persona)) {
            echo
"$row['cognome'] $row['nome']";
        }
    } 
...certo che è brutta forte...
Cercavo qualcosa di più semplice, però diamine funziona!
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 08:59   #8
starfred
Senior Member
 
Iscritto dal: Jul 2011
Messaggi: 381
select T.data, T.orario, nome1.cognome as Persona1,nome2.cognome as Persona2,nome3.cognome as Persona3
from turni as T, (select *from personale) as nome1, (select *from personale) as nome2, (select *from personale) as nome3
where T.persona1=nome1.tessera and
T.persona2=nome2.tessera and
T.persona3=nome3.tessera
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX
starfred è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 09:21   #9
]Rik`[
Senior Member
 
L'Avatar di ]Rik`[
 
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
Quote:
Originariamente inviato da starfred Guarda i messaggi
select T.data, T.orario, nome1.cognome as Persona1,nome2.cognome as Persona2,nome3.cognome as Persona3
from turni as T, (select *from personale) as nome1, (select *from personale) as nome2, (select *from personale) as nome3
where T.persona1=nome1.tessera and
T.persona2=nome2.tessera and
T.persona3=nome3.tessera
]Rik`[ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Infineon apre il 2 luglio lo Smart Power...
Crimson Desert non si ferma: il gioco di...
Con iOS 27 l'iPhone si ripristina da sol...
Visa porta i pagamenti in ChatGPT: gli a...
OpenAI valuta un 'drastico' taglio dei p...
Il MacBook con display touch si far&agra...
Google promette di restituire più...
Quattro monitor 4K, doppia LAN 2.5G e Wi...
ROG Equalizer, il cavo 'salva-GPU': prim...
Falla critica CVSS 9.8 in Oracle PeopleS...
Microsoft accelera su Edge: aggiornament...
AMD ha corretto un bug da 10.000 dollari...
Vertiv: data center, la corsa dell’IA sp...
Siri non diventerà la tua fidanzata virt...
Prezzi in crescita del 200% e forniture ...
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: 18:17.


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