Baio84
13-02-2013, 14:03
Il mio problema è il seguente: apro il mio database contenente due tabelle. Ne apro una e attraverso un ciclo while leggo record per record per estrarre le informazioni che mi servono, e durante ogni ciclo devo aggiornare i dati dell'altra tabella e anche i dati della tabella aperta per prima. Il primo giro me lo effettua, ma al secondo mi dà errore proprio all'altezza della riga del ciclo while, dicendo che c'è un problema con la query. Credo che il problema sia nell'apertura di diverse query con la stessa tabella. Si potrebbero effettuare più connessioni allo stesso database in modo da effettuare query alla stessa tabella ma con connessioni diverse per aggirare il problema? Spero di essere stato chiaro, comunque posto il codice
if (isset($_POST['risultati']))
{
$connessione=odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=public/gestione.mdb","","") or die("Connessione fallita");
$sql = "SELECT * FROM Calendario WHERE GIORNATA = $nrgiornata";
$partita = odbc_exec($connessione,$sql) or die("Query fallita");
while ($partite = odbc_fetch_array($partita)) //Legge i record riga per riga come un array
{
.
.
.
if($_POST["$casa"]>$_POST["$fuori"])
{
.
.
.
$sqlrisultati = "UPDATE Calendario SET GCA = $gfc, GFA = $gff WHERE GIORNATA = $nrgiornata AND CASA = '$casa' AND FUORI = '$fuori'";
$updaterisultati = odbc_exec($connessione,$sqlrisultati) or die("Query fallita");
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$casa'";
$record=odbc_exec($connessione,$sql) or die("Query fallita");
$dbgfc=odbc_result($record,"GF");
$dbgsc=odbc_result($record,"GS");
$dbvittcasa=odbc_result($record,"VC");
.
.
.
$sql="UPDATE Classifica SET GF=$nuovodbgfc, GS=$nuovodbgsc, VC=$nuovodbvittcasa WHERE SQUADRA = '$casa'";
$update=odbc_exec($connessione,$sql) or die("Query fallita");
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$fuori'";
$record=odbc_exec($connessione,$sql) or die("Query fallita");
$dbgff=odbc_result($record,"GF");
$dbgsf=odbc_result($record,"GS");
$dbpersafuori=odbc_result($record,"PF");
.
.
.
$sql="UPDATE Classifica SET GF=$nuovodbgff, GS=$nuovodbgsf, PF=$nuovodbpersafuori WHERE SQUADRA = '$fuori'";
$update=odbc_exec($connessione,$sql) or die("Query fallita");
}
}
}
if (isset($_POST['risultati']))
{
$connessione=odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=public/gestione.mdb","","") or die("Connessione fallita");
$sql = "SELECT * FROM Calendario WHERE GIORNATA = $nrgiornata";
$partita = odbc_exec($connessione,$sql) or die("Query fallita");
while ($partite = odbc_fetch_array($partita)) //Legge i record riga per riga come un array
{
.
.
.
if($_POST["$casa"]>$_POST["$fuori"])
{
.
.
.
$sqlrisultati = "UPDATE Calendario SET GCA = $gfc, GFA = $gff WHERE GIORNATA = $nrgiornata AND CASA = '$casa' AND FUORI = '$fuori'";
$updaterisultati = odbc_exec($connessione,$sqlrisultati) or die("Query fallita");
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$casa'";
$record=odbc_exec($connessione,$sql) or die("Query fallita");
$dbgfc=odbc_result($record,"GF");
$dbgsc=odbc_result($record,"GS");
$dbvittcasa=odbc_result($record,"VC");
.
.
.
$sql="UPDATE Classifica SET GF=$nuovodbgfc, GS=$nuovodbgsc, VC=$nuovodbvittcasa WHERE SQUADRA = '$casa'";
$update=odbc_exec($connessione,$sql) or die("Query fallita");
$sql = "SELECT * FROM Classifica WHERE SQUADRA = '$fuori'";
$record=odbc_exec($connessione,$sql) or die("Query fallita");
$dbgff=odbc_result($record,"GF");
$dbgsf=odbc_result($record,"GS");
$dbpersafuori=odbc_result($record,"PF");
.
.
.
$sql="UPDATE Classifica SET GF=$nuovodbgff, GS=$nuovodbgsf, PF=$nuovodbpersafuori WHERE SQUADRA = '$fuori'";
$update=odbc_exec($connessione,$sql) or die("Query fallita");
}
}
}