Query con i giorni della settimana

Gae

Utente Attivo
15 Mar 2021
36
2
8
Salve, sono alle prime armi nell'uso del linguaggio SQL.
Ho scritto già alcune query ma per quel che devo fare ho dei dubbi
Spero di essere chiaro
Ho vari campi boolean per i giorni della settimana e suddivisi per Mattina/Pomeriggio
Es.: lune_matt, lune_pome, mart_matt, mart_pome e così via
L'utente sceglie la data ed indica se gli interessa mattina, pomeriggio o entrambi
Per capire come fare ho semplificato la query pensando solo al giorno e non a Matt/Pome.
Ho creato un array con i giorni della settimana
settimana = array( 'lune_matt', 'mart_matt'... )
dalla data estrapolo il giorno della settimana, esempio martedì che è 3 e fare la where
giorno = settimana[3]
where giorno = true
Non so se sia giusto ragionare così o se c'è un sistema più comodo
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
la spiegazione é poco comprensibile,
sarebbe utile vedere la tabella con qualche riga di esempio e quale risultato ci si attende dall'esempio
 

Gae

Utente Attivo
15 Mar 2021
36
2
8
la spiegazione é poco comprensibile,
sarebbe utile vedere la tabella con qualche riga di esempio e quale risultato ci si attende dall'esempio
Spero di essere più chiaro stavolta e come consigliato da te posto questa tabella, ricordo che i campi sono TRE o FALSE
Non so se la tabella va esposta con questo tag
Codice:
id  | lune_matt | lune_pome | mart_matt | mart_pome | merco_matt | merco_pome | giove_matt | giov_pome | e così via
 1  |         T         |         F           |         F          |         T           |            T          |            T            |         F          |        F            |
 2  |         T         |         T           |         T          |         F           |            T          |            T            |         T          |        T            |
 3  |         F         |         F           |         F           |        T            |           F           |            F            |         F          |        F            |
...
ipotizzando che il giorno sia martedì pomeriggio, dovrebbe restituirmi solo gli id 1 e 3
non so esista un comando per evitare di controllare ogni singolo campo
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
SQL:
select id, mart_pome
from tabella
where mart_pome = 'T'
order by id

1648119126202.png
 

Gae

Utente Attivo
15 Mar 2021
36
2
8
Marino, grazie del codice, ma mi sa che dovevo scrivere anche la parte del messaggio scritto nel primo post.
La questione è che l'utente sceglie la data e se mattina o pomeriggio.
Su questi 2 dati devo impostare la query.
Quindi dev'essere una query dinamica e non fissa perchè a monte non so cosa sceglierà
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
l'utente sceglie la data e se mattina o pomeriggio
puoi postare il codice usato per questa scelta ?

in ogni caso, ho capito che utilizzi una tabella da 7 giorni (includendo sab e dom) x 2 ovvero mattina / pomeriggio
mi sembra un sistema di prenotazione ciclico su 7 giorni, ovvero al termine della giornata le prenotazioni vengono "rimosse" rendendo la giornata disponibile per la settimana successiva
mi sembra un sistema semplice e facilmente gestibile,
tutto dipende comunque dall'applicazione che gli utenti usano per prenotare il giorno e la mattina o il pomeriggio
deve essere un applicazione che consenta di raccogliere questi parametri e passarli al server che elaborando la query restituisce il risultato (positivo / negativo)
più di così non so che dire senza conoscere il codice già sviluppato per la scelta
 

Gae

Utente Attivo
15 Mar 2021
36
2
8
Si Marino ho una tabella con vari campi, oltre ai giorni della settimana suddivisi tra mattina e pomeriggio ho l'id del cliente, le date in cui non è possibile consegnare ed altri campi tipo in quella località o zona non puoi consegnare ed altro. La query è abbastanza complessa.
I giorni della settimana fanno parte del tabella e non vengono azzerati.
La query per i giorni della settimana non l'ho ancora realizzata perchè vista la mia poca esperienza non ho capito qual è il giusto modo di operare.
La prima idea è quella di creare una stringa. L'input è dato dalla data ($data) e se è di mattina e/o pomeriggio (2 campi boolean $matt, $pome).
Creo l'array del giorno dei giorni della settimana
$campo = array ('dome_','lune_','mart_','merc_','giovedì','vene_','saba_','dome_') ;
$nuGio = (int)date("N", $data);
if ($matt) {
$giorno = $campo[$nuGio] .'matt ;
} else $pome
$giorno = $campo[$nuGio] .'pome' ;
}
poi aggiungere la parte che potrebbero essere stati selezionati sia mattina che pomeriggio
E poi usare il codice che hai scritto tu.

Ho visto anche che c'è il comando dayOfWeek

Non so se l'approccio è quello giusto o meno, perciò sono indeciso
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
supponi che "@giorno" e "@tipo" siano le variabili di uno script php "$giorno" e "$tipo"
con "mart_pome" e "merc_matt" come esempi, la query può essere scritta con solo i 2 parametri "@giorno" e "@tipo"
1648474330020.png


dimmi se ho capito ....
 

Gae

Utente Attivo
15 Mar 2021
36
2
8
Si adesso devo inserirla nel resto della query
Grazie sia per il tempo che per la disponibilità
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
ma puoi costruirla direttamente con php, la query sarà molto più semplice

PHP:
$giorno = "mart_pome";
$tipo   = "T";

$sql = "SELECT id, " . $giorno
     . " FROM tabella"
     . " WHERE " . $giorno . " = '" . $tipo . "'"
     . " ORDER BY id";

echo "<h3>query</h3>" . $sql;

1648477785439.png
 

Gae

Utente Attivo
15 Mar 2021
36
2
8
Marino grazie mi hai fatto risparmiare tantissimo tempo
Alla prossima
 
Discussioni simili
Autore Titolo Forum Risposte Data
T Query con date MS Access 1
L Query e selezione DB con $_POST PHP 2
O problema con query PHP 4
T Query su due tabelle con totali Database 4
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
G Menù a tendina di ricerca con query PHP 1
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
R Aiuto con le query MS Access 2
M Problemi con query a più tabelle PHP 3
F query e form con select multipla PHP 17
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
O query con date in formato stringa PHP 3
M [PHP] Problema con query select PHP 2
M [PHP] Problemi con query unione PHP 11
D [Visual Basic] [MS Access] query con parametro di testo Visual Basic 4
L [PHP] IF con risultato query PHP 7
V [MySQL] problema query con date su server MySQL 5
P Query Mysql con Join PHP 2
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
D [MySQL] Tabelle "molti a molti", SELECT con troppe QUERY MySQL 7
P [PHP] Query con variabile PHP 2
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
Laskot Query al DB con php (INSERT) PHP 2
P [MYSQL] Query su tabelle con clausola "essenziale" MySQL 10
S [PHP] Più fetch_array con unica query... PHP 9
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
A Query mssql su mysql con linked server Database 0
D Problema con query in php PHP 5
M [PHP] Problema con query PHP 17
elpirata [PHP] Paginazione dati estratti da una query con più condizioni PHP 17
Rikk73 [C#] problema con stampa da query linq EnumerableRowCollection .NET Framework 0
M Visualizzare su più pagine risultato query con fpdf PHP 6
M Problema con query PHP 15
P Query con Somma di un Campo , aggregazione e join Database 3
F Tabella con prima colonna con i risultati di una query PHP 1
M Problemi con query su due tabelle PHP 2
G Problema con una query. PHP 5
S Query con GETDATE() su SQL2008 R2 EXPRESS Database 1
D aiuto con query PHP 1
E Problemi auto increment con query Insert Into Select MySQL 2
A impostare una query con operatori condizionali MySQL 1
C Query con campo a valori multipli MS Access 0
M query con php "dinamica" PHP 2
M Access-Query per creare una tabella con la data nel nome tabella MS Access 0
N Cacolo con query PHP 11
A query con excel PHP 0
D Raggruppare dati query con php PHP 1
F problema su query con nome tabella variabile PHP 20

Discussioni simili