• User Attivo

    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-GOLSUBITI

    La 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?


  • User

    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]


  • User Attivo

    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