Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ordinare colonne

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    100

    Ordinare colonne

    Ciao a tutti

    Ho una tabella con i campi Id Nome Cognome vorrei cliccando sopra ogni colonna
    che mi vengano ordinati i dati per Id Nome Cognome.
    Come si può fare?


    Codice PHP:
    <table width="870" border= "1" align="center">
        

        <tr>
          
          <td><div align="center"><font color="#000066">[b]Id[/b]</font></div></td>
          <td><div align="center"><font color="#000066">[b]Nome[/b]</font></div></td>
          <td><div align="center"><font color="#000066">[b]Cognome[/b]</font></div></td>
              </tr>
        <?php
    $db 
    mysql_connect("localhost","root","");
    mysql_select_db("atleti"$db);
        
    $result =mysql_query("SELECT * FROM mia Where Id" );


    while(
    $myrow=mysql_fetch_array($result))

    echo  
    "<tr>
    <td>
    $myrow[Id]</td>
    <td>
    $myrow[Nome]</td>
    <td>
    $myrow[Cognome]</td>";
    ?>
        
        </tr>            
      </table>
    Grazie

  2. #2
    Puoi farlo semplicemente modificando la query mysql. Nella pagina che ordina per id la query sarà
    codice:
    SELECT * FROM mia order by id desc
    se vuoi che l'ordine sia dal più alto al più basso, altrimenti
    codice:
    SELECT * FROM mia order by Id asc
    per le altre due usi
    codice:
    SELECT * FROM mia order by Nome asc
    e
    codice:
    SELECT * FROM mia order by Cognome asc
    che utilizzano l'ordine alfabetico da A a Z.

    Spero di esserti stato utile!

  3. #3
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    ipotizzando che la pagina si chiami index.php

    Codice PHP:
    <?php
    $order 
    "id";
    $mode "ASC";
    $modeid "asc";
    $modeno "asc";
    $modeco "asc";
    if(!empty(
    $_GET['order']))
        
    $order $_GET['order'];
    switch(
    $order){
    case 
    "nome";
        if((
    $_GET['mode'] == "asc" )
            
    $modeco "desc";
        else
            
    $modeco "asc";
    $mode $modeco;
    break;
    case 
    "cognome";
        if((
    $_GET['mode'] == "asc" )
            
    $modeno "desc";
        else
            
    $modeno "asc";
    $mode $modeno;
    break;
    case 
    "id":
    default:
        
    $order "id";
        if((
    $_GET['mode'] == "asc" )
            
    $modeid "desc";
        else
            
    $modeid "asc";
    $mode $modeid;
    break;
    }
    ?>

    <table width="870" border= "1" align="center">
        

        <tr>
          
          <td><div align="center"><font color="#000066">[b][url="index.php?order=id&mode=$modeid"]Id[/url][/b]</font></div></td>
          <td><div align="center"><font color="#000066">[b][url="index.php?order=nome&mode=$modeno"]Nome[/url][/b]</font></div></td>
          <td><div align="center"><font color="#000066">[b][url="index.php?order=cognome&mode=$modeco"]Cognome[/url][/b]</font></div></td>
              </tr>
        <?php
    $db 
    mysql_connect("localhost","root","");
    mysql_select_db("atleti"$db);
        
    $result =mysql_query("SELECT * FROM mia ORDER BY $order $mode");

    while(
    $myrow=mysql_fetch_array($result))

    echo  
    "<tr>
    <td>
    $myrow[Id]</td>
    <td>
    $myrow[Nome]</td>
    <td>
    $myrow[Cognome]</td>";
    ?>
        
        </tr>            
      </table>
    prova... dovrebbe funzionare..
    eXvision

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    100
    Ok funziona.

    Ho giusto tolto una parentesi ( delle if nome, cognome, id.

    Grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.