Baio84
06-04-2012, 13:23
Sono nuovo e innanzitutto faccio un saluto a tutti quelli del forum! :D
Gestisco il sito della squadra in cui gioco. Ogni settimana inserisco a mano i risultati e aggiorno, sempre a mano, la classifica. Stancato di tutto questo lavoro dispendioso, giro su internet e scopro il linguaggio php. Me lo studio per bene, e ora sto cercando di utilizzarlo per far aggiornare automaticamente la tabella.
Come avete capito sono un principiante, per cui alcuni passaggi del mio codice risulteranno sicuramente troppo pesanti perchè magari potrei utilizzare qualche funzione che però ancora non conosco.
Vi illustro il mio progetto. Da una prima pagina inserisco i risultati delle partite che invio poi ad un'altra pagina che li elabora in un database. Ecco il codice della seconda pagina:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Senza nome 1</title>
</head>
<body>
<?php
$prova="giorn_prova.txt"; //Inizializza file con le giornate
if(isset($_POST['invia'])) //Controlla se il pulsante invia è stato premuto
{
$giornate=file($prova); //Legge il file come un array
for($c=0;$c<2;$c++) //Ciclo eseguito 2 volte che elabora i risultati delle 2 partite di una giornata
{
$partite=explode(":",$giornate[$c]); //Leggo le giornate una alla volta
$casa=$partite[0]; //La squadra che gioca in casa
$fuori=$partite[1]; //La squadra che gioca fuori casa
if($_POST["$casa"]>$_POST["$fuori"]) //Se vince la squadra di casa, allora...
{
$gfc=$_POST["$casa"]; //Gol fatti dalla squadra di casa
$gsc=$_POST["$fuori"]; //Gol subiti dalla squadra di casa
$gff=$_POST["$fuori"]; //Gol fatti dalla squadra di fuori casa
$gsf=$_POST["$casa"]; //Gol subiti dalla squadra di fuori casa
$vittcasa=+1; //Aggiungo +1 alle vittorie in casa
$persafuori=+1; //Aggiungo +1 alle sconfitte fuori casa
$connessione=odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=public/classifica.mdb","","") or die("Connessione fallita"); //Connessione al database
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$casa'"; //Query che seleziona la riga della squadra che gioca in casa
$record=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
$dbgfc=odbc_result($record,"GF"); //Estraggo i gol fatti in totale dalla squadra di casa
$dbgsc=odbc_result($record,"GS"); //Estraggo i gol subiti in totale dalla squadra di casa
$dbvittcasa=odbc_result($record,"VC"); //Estraggo le vittorie in casa totali della squadra di casa
$nuovodbgfc=$dbgfc + $gfc; //Gli sommo i gol di giornata
$nuovodbgsc=$dbgsc + $gsc; //Gli sommo i gol di giornata
$nuovodbvittcasa=$dbvittcasa + $vittcasa; //Gli sommo la vittoria di giornata
$sql="UPDATE Classifica SET GF='$nuovodbgfc', GS='$nuovodbgsc', VC='$nuovodbvittcasa' WHERE SQUADRA = '$casa'"; //Query che aggiorna i nuovi dati
$update=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$fuori'"; //Query che seleziona la riga della squadra che gioca fuori casa
$record=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
odbc_result_all($record); //Query di prova
$dbgff=odbc_result($record,"GF"); //Estraggo i gol fatti in totale dalla squadra fuori casa
$dbgsf=odbc_result($record,"GS"); //Estraggo i gol subiti in totale dalla squadra fuori casa
$dbpersafuori=odbc_result($record,"PF"); //Estraggo le sconfitte fuori casa totali della squadra fuori casa
$nuovodbgff=$dbgff + $gff; //Gli sommo i gol di giornata
$nuovodbgsf=$dbgsf + $gsf; //Gli sommo i gol di giornata
$nuovodbpersafuori=$dbpersafuori + $persafuori; //Gli sommo la sconfitta di giornata
$sql="UPDATE Classifica SET GF='$nuovodbgff', GS='$nuovodbgsf', PF='$nuovodbpersafuori' WHERE SQUADRA = '$fuori'"; //Query che aggiorna i nuovi dati
$update=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
odbc_close($connessione); //Chiudo la connessione
}
elseif($_POST["$casa"]<$_POST["$fuori"])
{
echo $casa." 0<br />";
echo $fuori." +3<br /><br />";
}
else
{
echo $casa." +1<br />";
echo $fuori." +1<br /><br />";
}
}
}
?>
</body>
</html>
Il codice funziona bene. I dati riguardanti la squadra di casa me li estrae, li aggiorna e li inserisce. Non mi fa la stessa cosa con quella che gioca fuori casa. Infatti, stampandomi la tabella con la query di prova (in grassetto), di dice che non trova righe da stampare. Quindi credo che i problemi siano due: o non mi legge la variabile $fuori (ma questo lo escludo perchè se gli faccio un echo me la stampa corretta), o faccio qualche errore con la query.
Ulteriori informazioni:
-Siccome è ancora tutto in prova, le squadre totali sono 4, quindi 2 partite per giornata;
-l'elseif e l'else al momento non contano. Daranno il loro contributo quando risolverò questa parte;
-utilizzo come database Access. Non uso Mysql perchè su Aruba dovrei pagare un supplemento. Anzi, sarei grato se qualcuno potesse postare una guida sulle varie funzioni ODBC legate a PHP.
Ringrazio chiunque voglia darmi una mano :ave:
EDIT: Facendo un'ulteriore prova, la query non riesce proprio a leggere la variabile $fuori, perchè se la sostituisco ancora con la variabile $casa, i dati me li aggiorna. A me sembra una cosa strana.
Gestisco il sito della squadra in cui gioco. Ogni settimana inserisco a mano i risultati e aggiorno, sempre a mano, la classifica. Stancato di tutto questo lavoro dispendioso, giro su internet e scopro il linguaggio php. Me lo studio per bene, e ora sto cercando di utilizzarlo per far aggiornare automaticamente la tabella.
Come avete capito sono un principiante, per cui alcuni passaggi del mio codice risulteranno sicuramente troppo pesanti perchè magari potrei utilizzare qualche funzione che però ancora non conosco.
Vi illustro il mio progetto. Da una prima pagina inserisco i risultati delle partite che invio poi ad un'altra pagina che li elabora in un database. Ecco il codice della seconda pagina:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Senza nome 1</title>
</head>
<body>
<?php
$prova="giorn_prova.txt"; //Inizializza file con le giornate
if(isset($_POST['invia'])) //Controlla se il pulsante invia è stato premuto
{
$giornate=file($prova); //Legge il file come un array
for($c=0;$c<2;$c++) //Ciclo eseguito 2 volte che elabora i risultati delle 2 partite di una giornata
{
$partite=explode(":",$giornate[$c]); //Leggo le giornate una alla volta
$casa=$partite[0]; //La squadra che gioca in casa
$fuori=$partite[1]; //La squadra che gioca fuori casa
if($_POST["$casa"]>$_POST["$fuori"]) //Se vince la squadra di casa, allora...
{
$gfc=$_POST["$casa"]; //Gol fatti dalla squadra di casa
$gsc=$_POST["$fuori"]; //Gol subiti dalla squadra di casa
$gff=$_POST["$fuori"]; //Gol fatti dalla squadra di fuori casa
$gsf=$_POST["$casa"]; //Gol subiti dalla squadra di fuori casa
$vittcasa=+1; //Aggiungo +1 alle vittorie in casa
$persafuori=+1; //Aggiungo +1 alle sconfitte fuori casa
$connessione=odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=public/classifica.mdb","","") or die("Connessione fallita"); //Connessione al database
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$casa'"; //Query che seleziona la riga della squadra che gioca in casa
$record=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
$dbgfc=odbc_result($record,"GF"); //Estraggo i gol fatti in totale dalla squadra di casa
$dbgsc=odbc_result($record,"GS"); //Estraggo i gol subiti in totale dalla squadra di casa
$dbvittcasa=odbc_result($record,"VC"); //Estraggo le vittorie in casa totali della squadra di casa
$nuovodbgfc=$dbgfc + $gfc; //Gli sommo i gol di giornata
$nuovodbgsc=$dbgsc + $gsc; //Gli sommo i gol di giornata
$nuovodbvittcasa=$dbvittcasa + $vittcasa; //Gli sommo la vittoria di giornata
$sql="UPDATE Classifica SET GF='$nuovodbgfc', GS='$nuovodbgsc', VC='$nuovodbvittcasa' WHERE SQUADRA = '$casa'"; //Query che aggiorna i nuovi dati
$update=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$fuori'"; //Query che seleziona la riga della squadra che gioca fuori casa
$record=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
odbc_result_all($record); //Query di prova
$dbgff=odbc_result($record,"GF"); //Estraggo i gol fatti in totale dalla squadra fuori casa
$dbgsf=odbc_result($record,"GS"); //Estraggo i gol subiti in totale dalla squadra fuori casa
$dbpersafuori=odbc_result($record,"PF"); //Estraggo le sconfitte fuori casa totali della squadra fuori casa
$nuovodbgff=$dbgff + $gff; //Gli sommo i gol di giornata
$nuovodbgsf=$dbgsf + $gsf; //Gli sommo i gol di giornata
$nuovodbpersafuori=$dbpersafuori + $persafuori; //Gli sommo la sconfitta di giornata
$sql="UPDATE Classifica SET GF='$nuovodbgff', GS='$nuovodbgsf', PF='$nuovodbpersafuori' WHERE SQUADRA = '$fuori'"; //Query che aggiorna i nuovi dati
$update=odbc_exec($connessione,$sql) or die("Query fallita"); //Esecuzione query
odbc_close($connessione); //Chiudo la connessione
}
elseif($_POST["$casa"]<$_POST["$fuori"])
{
echo $casa." 0<br />";
echo $fuori." +3<br /><br />";
}
else
{
echo $casa." +1<br />";
echo $fuori." +1<br /><br />";
}
}
}
?>
</body>
</html>
Il codice funziona bene. I dati riguardanti la squadra di casa me li estrae, li aggiorna e li inserisce. Non mi fa la stessa cosa con quella che gioca fuori casa. Infatti, stampandomi la tabella con la query di prova (in grassetto), di dice che non trova righe da stampare. Quindi credo che i problemi siano due: o non mi legge la variabile $fuori (ma questo lo escludo perchè se gli faccio un echo me la stampa corretta), o faccio qualche errore con la query.
Ulteriori informazioni:
-Siccome è ancora tutto in prova, le squadre totali sono 4, quindi 2 partite per giornata;
-l'elseif e l'else al momento non contano. Daranno il loro contributo quando risolverò questa parte;
-utilizzo come database Access. Non uso Mysql perchè su Aruba dovrei pagare un supplemento. Anzi, sarei grato se qualcuno potesse postare una guida sulle varie funzioni ODBC legate a PHP.
Ringrazio chiunque voglia darmi una mano :ave:
EDIT: Facendo un'ulteriore prova, la query non riesce proprio a leggere la variabile $fuori, perchè se la sostituisco ancora con la variabile $casa, i dati me li aggiorna. A me sembra una cosa strana.