Ciao a tutti
Qualcuno potrebbe aiutarmi a strizzare il più possibile queste operazioni e renderle più veloci?
Perché non riesco a spremerle di più.
Considerando che, prima di averne avuto conoscenza, ho iniziato senza usare il GROUP BY (lasciamo perdere...)
Il codice funziona come voglio, ma è lento se su tante righe.
Io ho 100 righe, divise per gruppi (gruppo 1 da 5 righe, gruppo 2 da 10 righe e così via)
ogni riga ha una colonna link, in cui può esserci o no un link
devo ottenere una lista di quei gruppi che hanno tutti i link per ogni loro riga, e se così non fosse una lista di link mancanti per ogni gruppo
Il codice qui sotto funziona tutto, ma è troppo lungo... considerando che è una pagina da richiamare 1 volta ogni 5 secondi con un setInterval
Se qualcuno mi dà un consiglio su dove andare a parare nel manuale per risolvere tutto questo gliene sarei grato...
anche perché ho cercato di capire come usare magari un COUNT, o EXCEPT o TRANSICTION, le ho capite secondo gli esempi, ma non riesco a usarle e combinarle tra di loro in questo contesto per arrivare allo stesso risultato
if(isset($_GET["check_upload"])){
$elenco = array();
$CATEGORIA = "Fumetti";
$DATA = "2020-01-02";
if(mysqli_num_rows($result = mysqli_query($mysqli_connection, "SELECT * FROM foto WHERE categoria = '$CATEGORIA' AND cartella_locale = '$DATA' AND link IS NOT NULL GROUP BY gruppo ORDER BY percorso ASC"))>0){
while($riga = mysqli_fetch_assoc($result)){
if(mysqli_num_rows($result1 = mysqli_query($mysqli_connection, "SELECT link FROM foto WHERE categoria = '$CATEGORIA' AND cartella_locale = '$DATA' AND gruppo = '{$riga['gruppo']}' AND link IS NOT NULL"))==mysqli_num_rows($result2 = mysqli_query($mysqli_connection, "SELECT * FROM foto WHERE categoria = '$CATEGORIA' AND cartella_locale = '$DATA' AND gruppo = '{$riga['gruppo']}'"))){
//TUTTE LE RIGHE DEL GRUPPO HANNO IL LINK
$elenco[] = $riga["gruppo"];
}else{
$n = mysqli_num_rows($result_diff = mysqli_query($mysqli_connection, "SELECT * FROM foto WHERE categoria = '$CATEGORIA' AND cartella_locale = '$DATA' AND gruppo = '{$riga['gruppo']}' AND link IS NULL ORDER BY percorso ASC"));
while($riga_diff = mysqli_fetch_assoc($result_diff)){
$elenco[] = $riga["gruppo"]."_".$riga_diff["nome_foto"];
}
}
}
}
echo '<pre>'; print_r($elenco);