Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Tabella

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    63

    Tabella

    Ho una tabella che mi estrapola dati personali. La lista è ordinata in base al cognome. Vorrei linkare il campo della tabella per ordinarli, ad esempio per data di nascita come faccio?

  2. #2
    Non ho capito bene: in pratica hai uno script che disegna una tabella inserendovi dei dati (presi da un db mysql, presumo), e tu vuoi creare un link per riscrivere la tabella ordinando i dati in un certo modo, giusto?
    Be' così su due piedi non posso aiutarti, posta il codice che disegna la tabella, così potrò dirti come modificarlo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    63

    RE:

    <?php
    echo "<table width='100%' border='1'>
    <tr>
    <td width='5%'>
    ID
    </td>
    <td width='12%'>
    Cognome
    </td>
    <td width='12%'>
    Nome
    </td>
    <td width='10%'>
    Data di Nascita
    </td>
    <td width='10%'>
    Nazionalità
    </td>
    <td width='3%'>
    Cat.
    </td>
    <td width='8%'>
    Posizione
    </td>
    <td width='8%'>
    Data
    </td>
    <td width='2%'>
    A.P.
    </td>
    <td width='25%'>
    Note
    </td>
    </tr>
    ";
    Questa è la tabella. Io vorrei cliccare ad esempio su nome e tutto il database mi ordinasse i dati in base al nome in ordine alfabetico.
    Ora quando scrivo l'sql per ordinare la prima volta la tabella lo faccio in base al cognome ed è tutto ok, ma non riesco a creare questi altri link.
    Ti faccio presente che al file php io ci arrivo tramite un $_GET['posizione'] che si riferisce al dato della posizione della persona.

  4. #4
    Se ho capito bene allora ti basta che il link reindirizzi alla pagina che estrae i dati dal db, passandogli anche una variabile get "mode" e poi mettervi uno script del genere per estrarre i dati:
    Codice PHP:
    if($_GET['mode']=='cognome')
    $query=mysql_query("SELECT * form tuatabella order by cognome");
    if(
    $_GET['mode']=='nome')
    $query=mysql_query("SELECT * form tuatabella order by nome");
    if(
    $_GET['mode']=='nazionalità')
    $query=mysql_query("SELECT * form tuatabella order by nazionalità");
    if(
    $_GET['mode']=='ID')
    $query=mysql_query("SELECT * form tuatabella order by id"); 
    Isomma, alla query agggiungi alla fine "order by" e l'elemento in base al quale vuoi che vengano ordinati i dati.
    Verranno estratti in questo modo in ordine alfanumerico dal primo all'ultimo.
    Spero di esserti stato d'aiuto!


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    63

    RE:

    Per $_GET['mode'] intendi $_GET['posizione'] che sarebbe il mio Get o cosa?

  6. #6
    No, io intendo che il link per ordinare gli elementi deve passare allapagina php che li estrae dal databse una variabile, "mode per esempio, che contenga l'elemento in base al quale gli elementi devono essere estratti.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    63

    RE:RE:

    <?php
    echo "<table width='100%' border='1'>
    <tr>
    <td width='5%'>
    ID
    </td>
    <td width='12%'>
    Cognome
    </td>
    <td width='12%'>
    Nome
    </td>
    <td width='10%'>
    Data di Nascita
    </td>
    <td width='10%'>
    Nazionalità
    </td>
    <td width='3%'>
    Cat.
    </td>
    <td width='8%'>
    Posizione
    </td>
    <td width='8%'>
    Data
    </td>
    <td width='2%'>
    A.P.
    </td>
    <td width='25%'>
    Note
    </td>
    </tr>
    ";
    $pos=$_GET['posizione'];
    $id=addslashes($_POST['id_per']);

    $sql="SELECT * FROM persone_a12 WHERE posizione = '".$pos."' ORDER BY cognome";

    $ri = mysql_db_query( $db_name, $sql );

    if (!$ri) {
    echo "<h1>Errore durante l'accesso dai dati! Contattare il Referente informatico provinciale</h1>";
    exit;
    }

    $nr = mysql_num_rows($ri);

    if ($nr == 0) {
    echo "<tr>
    <td colspan='2'>
    <h3>La ricerca non ha prodotto risultati!</h3>
    </td>
    </tr>";
    }else{
    while ( $dati = mysql_fetch_array($ri) ) {
    echo "<tr><td>".$dati['id_per']."</td></a><td>".$dati['cognome']."</td><td>".$dati['nome']."</td><td>".$dati['data_n

    ascita']."</td><td>".$dati['nazione']."</td><td>".$dati['cat_per_a12']."</td><td>".$dati['posizione']."</td><td>".$dati['data_decr']."</td><td><font

    color=yellow>".$dati['quarta']."</font></td><td>".$dati['note']."</td></tr>";
    }

    }
    echo $id;
    mysql_close($db);


    ?>
    Questo è tutto il codice. Da qui come puoi vedere posso andare in una scheda personale. ma all'inizio se voglio creare un href per ordinare i dati in base ai nomi dei campi della tabella non ci riesco. Perdona l'ottusaggine, ma ti prego aiutami

  8. #8
    Codice PHP:
    <?php
    echo "
    <a href=\"
    $_SERVER['PHP_SELF']&ordine=cognome\">ordina per cognome</a>
    <a href=\"
    $_SERVER['PHP_SELF']&ordine=nome\">ordina per nome</a>
    <a href=\"
    $_SERVER['PHP_SELF']&ordine=ID\">ordina per ID</a>
    <table width='100%' border='1'>
    <tr>
    <td width='5%'>
    [b]ID[/b]
    </td>
    <td width='12%'>
    [b]Cognome[/b]
    </td>
    <td width='12%'>
    [b]Nome[/b]
    </td>
    <td width='10%'>
    [b]Data di Nascita[/b]
    </td>
    <td width='10%'>
    [b]Nazionalità[/b]
    </td>
    <td width='3%'>
    [b]Cat.[/b]
    </td>
    <td width='8%'>
    [b]Posizione[/b]
    </td>
    <td width='8%'>
    [b]Data[/b]
    </td>
    <td width='2%'>
    [b]A.P.[/b]
    </td>
    <td width='25%'>
    [b]Note[/b]
    </td>
    </tr>
    "
    ;
    $pos=$_GET['posizione'];
    $id=addslashes($_POST['id_per']);
    $ordine="cognome";
    if (isset(
    $_GET['ordine']))
    $ordine=$_GET['ordine'];
    $sql="SELECT * FROM persone_a12 WHERE posizione = '".$pos."' ORDER BY ".$ordine;

    $ri mysql_db_query$db_name$sql );

    if (!
    $ri) {
    echo 
    "<h1>Errore durante l'accesso dai dati! Contattare il Referente informatico provinciale</h1>";
    exit;
    }

    $nr mysql_num_rows($ri);

    if (
    $nr == 0) {
    echo 
    "<tr>
    <td colspan='2'>
    <h3>La ricerca non ha prodotto risultati!</h3>
    </td>
    </tr>"
    ;
    }else{
    while ( 
    $dati mysql_fetch_array($ri) ) {
    echo 
    "<tr><td>".$dati['id_per']."</td></a>[url='scheda_pers.php?id_per=".$dati[']<td>".$dati['cognome']."</td>[/url]<td>".$dati['nome']."</td><td>".$dati['data_n

    ascita
    ']."</td><td>".$dati['nazione']."</td><td>".$dati['cat_per_a12']."</td><td>".$dati['posizione']."</td><td>".$dati['data_decr']."</td><td><font

    color=yellow>".$dati['
    quarta']."</font></td><td>".$dati['note']."</td></tr>";
    }

    }
    echo $id;
    mysql_close($db);


    ?>
    Ecco! Questo era quello che serviva!
    L'ho modificato un po', così dovrebbe andare (ho aggiunto dei link in alto per ordinare, puoi aggiungerne quanti ne voui, basta che inserisci l'elemento per cui vuoi vengano ordinati dopo
    "&ordine=")
    Fami sapere se ci sono problemi!

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    63

    errore

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

    Questo è l'errore che mi da alla riga:
    <a href=\"$_SERVER['PHP_SELF']&ordine=cognome\">ordina per cognome</a>

    Devo modificare qualcosa
    perchè per accedere al database io faccio in questo modo
    ($_SERVER["DOCUMENT_ROOT"]."dbconf.php");

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    63

    se hai voglia

    Purtroppo devo andare. Stasera ho un concerto alla notte bianca ad Agrigento. Se hai voglia e possibilità rispondimi comunque, perchè ho bisogno di fare questa cosa. Grazie anticipate

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 © 2024 vBulletin Solutions, Inc. All rights reserved.