Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
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
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


NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
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...
Intel 18A-P è già in fase ...
Logitech G305 Lightspeed e G316 X 98: 8....
Qualcomm Snapdragon Reality Elite uffici...
Snapdragon START: arriva la piattaforma ...
Kioxia Exceria G3: il modella da 4 TB &e...
Gemini 3.5 Flash delude nei test Android...
DREAME X50 Ultra Complete a 749€ per il ...
Prezzi console handheld alle stelle: la ...
Toyota presenta il primo pickup elettric...
Prime Day anticipato, tutti gli smartpho...
Dyson V10 Konical: il primo aspirapolver...
FSR 4.1 su Radeon 6000, AMD spiega perch...
Hisense svela la gamma TV 2026: RGB Mini...
Narwal lancia gli sconti Prime Day 2026:...
SpaceX ha comprato Cursor: accordo da 60...
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:59.


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