• User Newbie

    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]

  • ModSenior

    Ciao torrone,
    è possibile utilizzare dei JOIN per ridurre il numero di query.