posta query e codice php per comporla, eseguirla e leggerne il risultato, non fare il tirchio come al solito
posta query e codice php per comporla, eseguirla e leggerne il risultato, non fare il tirchio come al solito
Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.
Dovresti anche farci un paio di esempi. Il caso più semplice e quello più complicato. Perché a seconda dei requisiti, la prima query potrebbe cambiare.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Questa la query dopo la prima, sinceramente penso che questa escluda i risultati della prima.
Ottengo la data dalla prima query e poi.
Codice PHP:
$data = $row["data"];
$query= "SELECT *, DATE_FORMAT(data, '%d-%m-%Y') AS datax FROM tabella WHERE data>$data LIMIT3";
Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.
Ho fatto una pagina a parte per visualizzare i risultati ottenuti dalla prima query tra limite di date.
Passo il valore $data di oghi risultato alla nuova pagina, tento di ottenere una data naggiore di 5 giorni e poi le utilizzo per fare una query tra limiti di date ottenendo così i 3 o 4 valori successivi alla data visualizzata, non riesco però a venirne a capo con l'aggiunta di 5 giorni.
Gli passo data=2024-04-02 e la data ottenuta è data = '2175-08-04'Codice PHP:
$data = $_GET['data'];
list($anno, $mese, $giorno) = explode('-',$data);
$data1 = date("Y-m-d",mktime (0,0,0,$anno,$mese, $giorno + 5));
Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.
Da dove escono fuori adesso i 5 giorni?
Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.
Però la stessa query che utilizzo per estrarre dalla mia tabella i valori tra due date, in questa pagina mi rende una sola riga.
I dati ci sono.
La query è corretta.
SELECT * FROM tabella WHERE data>='2024-03-19' AND data<='2024-03-29' ORDER BY data ASC
Codice PHP:
$query = "SELECT * FROM tabella WHERE data>='{$data}' AND data<='{$data1}' ORDER BY data ASC";
Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.
Allora, la query e i risultati ottenuti con la pagina fatta per visualizzare i successivi 3 record partendo dal risultato della prima query
funziona.Codice PHP:
$query = "SELECT *, DATE_FORMAT(data, '%d-%m-%Y') AS datax, IF(primo IN($primo, $secondo, $terzo, $quarto, $quinto, $sesto), 1, 0) + IF (secondo IN($primo, $secondo, $terzo, $quarto, $quinto, $sesto), 1, 0) + IF (terzo IN($primo, $secondo, $terzo, $quarto, $quinto, $sesto), 1, 0) + IF (quarto IN($primo, $secondo, $terzo, $quarto, $quinto, $sesto), 1, 0) + IF (quinto IN($primo, $secondo, $terzo, $quarto, $quinto, $sesto), 1, 0) + IF (sesto IN($primo, $secondo, $terzo, $quarto, $quinto, $sesto), 1, 0) AS numero FROM tabella HAVING numero >= $chiave ORDER BY data DESC";}
Adesso mi manca come integrare il tutto in una pagina, e li non ho idea di come formulare la query successiva alla prima in alto.....Codice PHP:
$query = "SELECT *, DATE_FORMAT(data, '%d-%m-%Y') AS datax FROM tabella WHERE data>='{$data}' AND data<='{$data1}' ORDER BY data ASC LIMIT 3";
Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.
premesse,
1) prove eseguite con MS SQL (e' il db che ho a disposizione)
2) ho cercato soluzioni prima che parlassi di date, quindi ho usato ID o ROW_NUMBER non DATE
3) con ID (esempio piu' semplice) non devono esserci buchi nella sequenza, con ROW_NUMBER viene usata una sequenza temporanea
4) tutte le tabelle e le variabili precedute da @ sono temporanee per evitare di creare e cancellare tabelle
codice:id campo1 campo2 campo3 campo4 campo5 campo61001 11 12 13 14 15 16 1002 1 2 3 24 25 26 1003 31 32 33 34 35 36 1004 41 42 43 44 45 46 1005 51 52 53 54 55 56 1006 61 62 63 64 65 66 1007 71 72 73 74 75 76 1008 81 82 83 4 5 6 1009 91 92 83 94 95 96 -- cerco i valori 1 2 3 4 5 6codice:-- primo esempio --------------------------------------------------------------- SELECT t2.* FROM ( SELECT id , Row_Number() over (order by id) AS rn -- NON USATO FROM @users WHERE CASE WHEN campo1 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo2 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo3 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo4 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo5 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo6 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END > 2 ) t1 INNER JOIN @users t2 ON t1.id = t2.id + 3 OR t1.id = t2.id + 2 OR t1.id = t2.id + 1 OR t1.id = t2.id; -- RISULTATO id campo1 campo2 campo3 campo4 campo5 campo6 1001 11 12 13 14 15 16 1002 1 2 3 24 25 26 1005 51 52 53 54 55 56 1006 61 62 63 64 65 66 1007 71 72 73 74 75 76 1008 81 82 83 4 5 6codice:-- secondo esempio ------------------------------------------------------------- WITH CTE1 AS ( SELECT Row_Number() over (order by id) AS rn , CASE WHEN campo1 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo2 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo3 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo4 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo5 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END + CASE WHEN campo6 IN(@n1, @n2, @n3, @n4, @n5, @n6) THEN 1 ELSE 0 END AS totale , * FROM @users ), CTE2 AS ( SELECT * from CTE1 WHERE totale > 2 ) SELECT * FROM CTE2 INNER JOIN CTE1 ON CTE1.rn = CTE2.rn - 3 OR CTE1.rn = CTE2.rn - 2 OR CTE1.rn = CTE2.rn - 1 -- RISULTATO rn totale id campo1 campo2 campo3 campo4 campo5 campo6 rn totale id campo1 campo2 campo3 campo4 campo5 campo6 2 3 1002 1 2 3 24 25 26 1 0 1001 11 12 13 14 15 16 8 3 1008 81 82 83 4 5 6 5 0 1005 51 52 53 54 55 56 8 3 1008 81 82 83 4 5 6 6 0 1006 61 62 63 64 65 66 8 3 1008 81 82 83 4 5 6 7 0 1007 71 72 73 74 75 76
Ultima modifica di marino51; 06-04-2024 a 00:16