Codice PHP:
<?
include("config.inc.php");
$db = mysql_connect($host, $username);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
// 1. Crea la tabella temporanea
$query = "CREATE TABLE tmp_calcetto (
id INT (5) UNSIGNED not null,
goals INT (5) UNSIGNED not null,
vittorie INT (5) UNSIGNED not null,
pareggi INT (5) UNSIGNED not null,
sconfitte INT (5) UNSIGNED not null)";
if (mysql_query($query, $db))
echo "Creazione tabella temporanea eseguita correttamente";
else
echo "Errore durante creazione tabella temporanea";
// 2. Costruisce le query di inserimento: si suppone che tu passi i giocatori via ID
$query = "INSERT INTO calcetto_risultati (data, squadra1, squadra2, goals1, goals2) VALUES ";
$query2 = "INSERT INTO tmp_calcetto (id, goals, vittorie, pareggi, sconfitte) VALUES ";
$is_set = false;
while (isset ($_POST['data' . ++$i]) && $_POST['data'] != NULL)
{
$is_set = true;
$data = $_POST['data' . $i];
$sq1 = $_POST['squadra1_' . $i];
$sq2 = $_POST['squadra2_' . $i];
$g1 = $_POST['goals1_' . $i];
$g2 = $_POST['goals2_' . $i];
$query .= "('$data', $sq1, $sq2, $g1, $g2), ";
if ($g1 > $g2)
// la squadra 1 ha vinto, la squadra 2 ha perso
$query2 .= "($sq1, $g1, 1, 0, 0), ($sq2, $g2, 0, 0, 1), ";
else if ($g1 < $g2)
// la squadra 1 ha perso, la squadra 2 ha vinto
$query2 .= "($sq1, $g1, 0, 0, 1), ($sq2, $g2, 1, 0, 0), ";
else
// resta solo il pareggio...
$query2 .= "($sq1, $g1, 0, 1, 0), ($sq2, $g2, 0, 1, 0), ";
}
// Se non hai inserito niente, non ha senso effettuare l'aggiornamento, salta direttamente alla distruzione della tabella temporanea
if ($is_set)
{
// ... quindi le esegue (in botta unica, così non devi fare una query per utente!)
$query = substr ($query, 0, strlen ($query) - 2);
$query2 = substr ($query, 0, strlen ($query2) - 2);
if (mysql_query ($query, $db) && mysql_query ($query2, $db))
echo ('Inserimento dati avvenuto!');
else
echo ('Inserimento non riuscito...');
// 3. Effettua l'aggiornamento
$query = "UPDATE calcetto, tmp_calcetto
SET calcetto.vittorie = calcetto.vittorie + tmp_calcetto.vittorie,
calcetto.pareggi = calcetto.pareggi + tmp_calcetto.pareggi,
calcetto.sconfitte = calcetto.sconfitte + tmp_calcetto.sconfitte,
calcetto.goals = calcetto.goals + tmp_calcetto.goals
WHERE calcetto.id = tmp_calcetto.id";
if (mysql_query($query, $db))
echo "Aggiornamento del database eseguito correttamente";
else
echo "Errore durante aggiornamento del database";
} // fine del "salto", se eseguito
// 4. Distruggi la tabella temporanea
$query = "DROP TABLE tmp_calcetto";
if (mysql_query ($query, $db))
echo ("Operazione completata!");
else
echo ("Eliminazione della tabella temporanea non riuscita :-(");
?>
Per realizzare il modulo, ecco un'idea di partenza (non ho previsto l'inserimento di nuovi giocatori, il numero di partite contemporanee è pari al massimo alla metà dei giocatori in difetto):