Salve a tutti, intanto vi riporto il link http://app.danielebarisano.it/vignet...ro/vigneto.php ed il codice
Ora vi spiego, praticamente vig1, vig2 e vig3 corrispondono alle checkbox in alto nella pagina bizz_uv_2_ng_2_15 ,la2,la3. Come potete vedere si fa corrispondere alla variabile $sqlvig una determinata query in base alle checkbox che si selezionano. Il codice soprastante funziona correttamente ma all inizio erano presenti 3 vigneti. Il committente ora mi dice che ci dovrebbero essere 20 vigneti e continuare con questo passo allungherebbe troppo il codice.Codice PHP:
<?php if(isset($_POST['vig1']) && isset($_POST['vig2']) && isset($_POST['vig3'])){ $vig1 = $_POST['vig1']; $vig2 = $_POST['vig2']; $vig3 = $_POST['vig3']; $sqlvig = "(SELECT * FROM ".$vig1." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine') UNION (SELECT * FROM ".$vig2." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine') UNION (SELECT * FROM ".$vig3." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine')"; }
elseif(isset($_POST['vig1']) && isset($_POST['vig2'])){ $vig1 = $_POST['vig1']; $vig2 = $_POST['vig2']; $sqlvig = "(SELECT * FROM ".$vig1." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine') UNION (SELECT * FROM ".$vig2." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine')"; }
elseif (isset($_POST['vig1']) && isset($_POST['vig3'])){ $vig1 = $_POST['vig1']; $vig3 = $_POST['vig3']; $sqlvig = "(SELECT * FROM ".$vig1." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine') UNION (SELECT * FROM ".$vig3." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine')"; }
elseif (isset($_POST['vig2']) && isset($_POST['vig3'])){ $vig2 = $_POST['vig2']; $vig3 = $_POST['vig3']; $sqlvig = "(SELECT * FROM ".$vig2." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine') UNION (SELECT * FROM ".$vig3." WHERE data_rilevamento BETWEEN '$datainizio' AND '$datafine')"; }
elseif(isset($_POST['vig1'])) { $vig1 = $_POST['vig1']; //seleziono id vigneti $sqlvig = "SELECT * FROM ".$vig1." WHERE (data_rilevamento BETWEEN '$datainizio' AND '$datafine');"; } elseif(isset($_POST['vig2'])){ $vig2 = $_POST['vig2']; $sqlvig = "SELECT * FROM ".$vig2." WHERE (data_rilevamento BETWEEN '$datainizio' AND '$datafine');"; } elseif(isset($_POST['vig3'])){ $vig3 = $_POST['vig3']; $sqlvig = "SELECT * FROM ".$vig3." WHERE (data_rilevamento BETWEEN '$datainizio' AND '$datafine');"; }
if ($sqlvig != NULL) $qry = mysqli_query($conn, $sqlvig); // controllo l'esito if (!$qry) { die("$sqlvig " .mysqli_error($conn)); }
Chi mi da idee su come scrivere al meglio il codice scrivendo meno codice possibile?