- Home
- Categorie
- Coding e Sistemistica
- PHP
- Classifica calcio in php
-
Classifica calcio in php
Ciao ragazzi...ho un problema
Sto realizzando una pagina che mi mostri a video i risultati presenti in una tabella del database.Ho la tabella del database strutturata cosi'
ID -SQUADRA-PUNTI-VINTE-PERSE-GOLFATTI-GOLSUBITILa pagina classifica.php è questa
[php]
<?
$sql="SELECT squadra,punti,vittorie,perse,golfatti,golsubiti,id FROM classifica WHERE id='1' ";
$query1=@mysql_query("$sql") or die("Errore query database: " . mysql_error());while($row=mysql_fetch_array($query1))
{
$squadra=$row['squadra'];
$punti=$row['punti'];
$vittorie=$row['vittorie'];
$perse=$row['perse'];
$golfatti=$row['golfatti'];
$golsubiti=$row['golsubiti'];
$id=$row['id'];
}?><form name="signup" id="signup" method="post" action="aggiornaclassifica.php">
<table width="393">
<tr>
<td colspan="2">
<font class="fontprofilo">Squadra</td>
<td colspan="2">
<font class="fontprofilo">Punti</td>
<td colspan="2">
<font class="fontprofilo">Vinte</td>
<td colspan="2">
<font class="fontprofilo">Perse</td>
<td colspan="2">
<font class="fontprofilo">Gol Fatti</td>
<td colspan="2">
<font class="fontprofilo">Gol Subiti</td></tr> <td colspan="2"> <input type="text" name="squadra" value="<? echo "$squadra"?>" id="squadra" tabindex="7" size="9" /></td> <td colspan="2"> <input type="text" name="punti" value="<? echo "$punti"?>" id="punti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="vinte" value="<? echo "$vittorie"?>"id="vinte" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="perse" value="<? echo "$perse"?>"id="perse" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="golfatti" value="<? echo "$golfatti"?>"id="golfatti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="golsubiti" value="<? echo "$golsubiti"?>"id="golsubiti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="submit" style="font-family:tahoma; font-size:11px;" size="1" value="Aggiorna" /></td> </tr> <td colspan="2"> <input type="text" name="squadra" value="<? echo "$squadra"?>" id="squadra" tabindex="7" size="9" /></td> <td colspan="2"> <input type="text" name="punti" value="<? echo "$punti"?>"id="punti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="vinte" value="<? echo "$vittorie"?>"id="vinte" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="perse" value="<? echo "$perse"?>" id="perse" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="golfatti" value="<? echo "$golfatti"?>" id="golfatti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="golsubiti" value="<? echo "$golsubiti"?>" id="golsubiti" tabindex="7" size="2" /></td>
</tr> [/php]Il problema sta nella visualizzazione...cioè vorrei evitare per ogni blocco di tabella di rifare questo passaggio per estrapolarmi l id della squadra che voglio mostrare in quel blocco di tabella ...
[php]
$sql="SELECT squadra,punti,vittorie,perse,golfatti,golsubiti,id FROM classifica WHERE id='1' ";
$query1=@mysql_query("$sql") or die("Errore query database: " . mysql_error());while($row=mysql_fetch_array($query1))
{
$squadra=$row['squadra'];
$punti=$row['punti'];
$vittorie=$row['vittorie'];
$perse=$row['perse'];
$golfatti=$row['golfatti'];
$golsubiti=$row['golsubiti'];
$id=$row['id'];
}?>[/php]Nel primo blocco di tabella ho messo come Where id='1' e cosi' nel primo blocco mi mostra i dati presenti per quell id...
Ora per il secondo blocco di tabella vorrei evitaredi rifare di nuovo lo stesso codice di php per ricavarmi l id='2' presente nel database da andare a inserire
C'è una scorciatoia?
-
Il While serve proprio a questo, la seconda parte della tabella non serve a niente, se la tua query restituisce più di un record, ad esempio togliendo la clausola WHERE, puoi mettere le righe della tabella che contengono i dati all'interno del ciclo while in modo di avere tanti <tr> per quanti sono i record restituiti:
[php]
<?php
$sql="SELECT squadra,punti,vittorie,perse,golfatti,golsubiti,id FROM classifica;
$query1=@mysql_query("$sql") or die("Errore query database: " . mysql_error());
?><form name="signup" id="signup" method="post" action="aggiornaclassifica.php">
<table width="393">
<tr>
<td colspan="2">
<font class="fontprofilo">Squadra</td>
<td colspan="2">
<font class="fontprofilo">Punti</td>
<td colspan="2">
<font class="fontprofilo">Vinte</td>
<td colspan="2">
<font class="fontprofilo">Perse</td>
<td colspan="2">
<font class="fontprofilo">Gol Fatti</td>
<td colspan="2">
<font class="fontprofilo">Gol Subiti</td></tr>
<?php
while($row=mysql_fetch_array($query1))
{
$squadra=$row['squadra'];
$punti=$row['punti'];
$vittorie=$row['vittorie'];
$perse=$row['perse'];
$golfatti=$row['golfatti'];
$golsubiti=$row['golsubiti'];
$id=$row['id'];
?><tr> <td colspan="2"> <input type="text" name="squadra" value="<? echo "$squadra"?>" id="squadra" tabindex="7" size="9" /></td> <td colspan="2"> <input type="text" name="punti" value="<? echo "$punti"?>" id="punti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="vinte" value="<? echo "$vittorie"?>"id="vinte" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="perse" value="<? echo "$perse"?>"id="perse" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="golfatti" value="<? echo "$golfatti"?>"id="golfatti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="text" name="golsubiti" value="<? echo "$golsubiti"?>"id="golsubiti" tabindex="7" size="2" /></td> <td colspan="2"> <input type="submit" style="font-family:tahoma; font-size:11px;" size="1" value="Aggiorna" /></td>
</tr>
<?php} ?>
</form>
[/php]
-
Secondo me dovresti considerare che mettere una nuova cella
per ogni riga nella tua tabella HTML potrebbe esserti di grande
aiuto. In questa cella ci metti[php]<input type="checkbox" name="squadra_{$id}" />[/php]
nella pagina in cui dai UPDATE rifai la stessa SELECT che hai fatto
per visualizzare la classifica e nel ciclo while() anzicchè stampare
le righe come hai già fatto, fai un controllo condizionale del tipo:[PHP]
if(isset($POST["squadra$id"]) &&
$POST["squadra$id"] == 'on')
{
# UPDATE
#
#
}
[/PHP]
Ovviamente questo tipo di approccio richiede la selezione della casella dei dati da modificare