- Home
- Categorie
- Coding e Sistemistica
- Coding
- ottimizzare codice
-
ottimizzare codice
Ho il seguente codice che devo riuscire ad ottimizzare.. diminuire il numero di query.. risucire ad unire la query4 con la query3 se è possibile... o cmq migliorare questo codice... qualcuno mi può dai una mano? :dhò:
CREATE TABLE IF NOT EXISTS `athletes_1` ( `data_inserimento` datetime NOT NULL, `teamId` int(11) NOT NULL, `athleteId` int(11) NOT NULL, `name` varchar(255) NOT NULL, `surname` varchar(255) NOT NULL, `form` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dump dei dati per la tabella `athletes_1` -- INSERT INTO `athletes_1` (`data_inserimento`, `teamId`, `athleteId`, `name`, `surname`, `form`) VALUES ('2011-05-07 12:08:13', 8, 2, 'Lisa', 'Politi', 14), ('2011-05-04 00:21:47', 8, 2, 'Lisa', 'Politi', 17), ('2011-05-07 12:08:13', 8, 1, 'Andrea', 'Torrone', 20), ('2011-05-04 00:21:47', 8, 3, 'Marco', 'De Marchi', 17), ('2011-05-07 12:08:13', 8, 3, 'Marco', 'De Marchi', 19); ```[php] // ricavo la data piu recente con MAX e quella piu vecchia con MIN $sql = "SELECT MAX(data_inserimento) AS data_rec, MIN(data_inserimento) AS data_vec FROM athletes_1 WHERE teamId=8"; $query = mysql_query($sql); $row = mysql_fetch_array($query); // mostro la lista degli atleti salvati in questa settimana $sql3 = "SELECT * FROM athletes_1 WHERE teamId='8' AND data_inserimento='" . $row['data_rec'] . "'"; $query3 = mysql_query($sql3); while ($row3 = mysql_fetch_array($query3)) { // ricavo informazioni del determinato atleta però della settimana precedente per confrontarlo $sql4 = "SELECT * FROM athletes_1 WHERE athleteId = '" . $row3['athleteId'] . "' AND teamId='" . $row3['teamId'] . "' AND data_inserimento='" . $row['data_vec'] . "'"; $query4 = mysql_query($sql4); $row4 = mysql_fetch_array($query4); $form_vec = isset($row4['form']) ? $row4['form'] : 0; // confronto settimane echo "Piu recente " . $row3['form'] ."<br />"; echo "Piu vecchio " . $form_vec ."<br />"; } [/php]
-
Ciao torrone,
è possibile utilizzare dei JOIN per ridurre il numero di query.