• User Attivo

    sì, infatti l'errore era nei link, ora li ho cambiati in questo modo:

    <span class="testo_rosso_bold"><a href="<?=$PHP_SELF?>?ORDER=ASC&SORT=cognome_corsista">cognome su</a></span>

    <span class="testo_rosso_bold"><a href="<?=$PHP_SELF?>?ORDER=DESC&SORT=cognome_corsista">cognome giu</a></span>  
    

    e funzionaaaaaaaaaa!!!!!!!!
    GRAZIE DIGITAL DAIGOR !!!!!!!!!


  • User Attivo

    nada, se posso.....aiuto!!!


  • User Attivo

    Ahh, peccato! Però se l'ordinamento lo faccio su due colonne funziona solo su una 😞

    [php]
    <?
    $sql = "SELECT registro_attestati., a_admin., DATE_FORMAT(registro_attestati.data_fine_corso, '%d-%m-%Y') AS data_fine_corso
    FROM registro_attestati, a_admin
    WHERE registro_attestati.id_admin=a_admin.id_admin
    ORDER BY registro_attestati.id_registro_attestati ".$_GET['ORDER1'].", registro_attestati.cognome_corsista ".$_GET['ORDER2']."";
    $result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
    $row = mysql_fetch_array($result);
    ?>
    [/php]<a href="<?=$PHP_SELF?>?ORDER1=DESC&SORT=id_registro_attestati"><img src="../images/freccia_giu.gif" width="10" height="17" border="0"></a>
    <a href="<?=$PHP_SELF?>?ORDER1=ASC&SORT=id_registro_attestati"><img src="../images/freccia_su.gif" width="10" height="17" border="0"></a>

    <a href="<?=$PHP_SELF?>?ORDER2=DESC&SORT=cognome_corsista"><img src="../images/freccia_giu.gif" width="10" height="17" border="0"></a>
    <a href="<?=$PHP_SELF?>?ORDER2=ASC&SORT=cognome_corsista"><img src="../images/freccia_su.gif" width="10" height="17" border="0"></a>

    UP

    up


  • User Attivo

    spiega meglio!

    tu li prendi già tutti e 2, ma la precedenza viene data al primo elemento di ordine, nel tuo caso:
    registro_attestati.id_registro_attestati

    e a elementi uguali in quella colonna, li ordina con il 2° criterio!


  • User Attivo

    succede che l'ordinamento ASC e DESC funziona solo sulla prima colonna: registro_attestati.id_registro_attestati

    <a href="<?=$PHP_SELF?>?ORDER1=DESC&SORT=id_registro_attestati"><img src="../images/freccia_giu.gif" width="10" height="17" border="0"></a>
    <a href="<?=$PHP_SELF?>?ORDER1=ASC&SORT=id_registro_attestati"><img src="../images/freccia_su.gif" width="10" height="17" border="0"></a>

    invece sulla seconda colonna: registro_attestati.cognome_corsista se clicco su una delle due freccette:

    <a href="<?=$PHP_SELF?>?ORDER2=DESC&SORT=cognome_corsista"><img src="../images/freccia_giu.gif" width="10" height="17" border="0"></a>
    <a href="<?=$PHP_SELF?>?ORDER2=ASC&SORT=cognome_corsista"><img src="../images/freccia_su.gif" width="10" height="17" border="0"></a>

    non succede nulla


  • User Attivo

    la query così com'è prenderà sempre prima 1 d'obbligo:
    RDER BY registro_attestati.id_registro_attestati ".$_GET['ORDER1'].", registro_attestati.cognome_corsista ".$_GET['ORDER2'].""

    devi mettergli un if prima che prenda uno o l'altro, e che nn siano tutti e 2 sempre nella query!


  • User Attivo

    avevo provato anche a usare gli if ma non succede niente:

    [php]
    <?
    $sql = "SELECT registro_attestati., a_admin., DATE_FORMAT(registro_attestati.data_fine_corso, '%d-%m-%Y') AS data_fine_corso
    FROM registro_attestati, a_admin
    WHERE registro_attestati.id_admin=a_admin.id_admin";
    $result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
    $row = mysql_fetch_array($result);
    ?>

    <?
    if (strtolower($_REQUEST["ORDER1"])=="ASC")
    {
    $sql .= " ORDER BY registro_attestati.id_registro_attestati ASC";
    }
    else
    {
    $sql.= " ORDER BY registro_attestati.id_registro_attestati DESC";
    }
    ?>
    <?
    if (strtolower($_REQUEST["ORDER2"])=="ASC")
    {
    $sql .= " ORDER BY registro_attestati.cognome_corsistaASC";
    }
    else
    {
    $sql.= " ORDER BY registro_attestati.cognome_corsista DESC";
    }
    ?>
    [/php]up


  • User Attivo

    gli if vanno prima del esecuzione della query

    [PHP]<?
    $sql = "SELECT registro_attestati., a_admin., DATE_FORMAT(registro_attestati.data_fine_corso, '%d-%m-%Y') AS data_fine_corso
    FROM registro_attestati, a_admin
    WHERE registro_attestati.id_admin=a_admin.id_admin";

    if (strtolower($_REQUEST["ORDER1"])=="desc")
    {
    $sql .= " ORDER BY registro_attestati.id_registro_attestati DESC";
    }
    else if(strtolower($_REQUEST["ORDER2"])=="desc")
    {
    $sql.= " ORDER BY registro_attestati.cognome_corsista DESC";
    }
    else
    {
    //metti ordinamento di default
    //$sql.= " ORDER BY registro_attestati.cognome_corsista";
    //o
    //$sql .= " ORDER BY registro_attestati.id_registro_attestati";
    }

    $result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
    $row = mysql_fetch_array($result);
    ?>[/PHP]


  • User Attivo

    Ciao Digital Daigor, ho letto solo ora il tuo messaggio.
    Ho fatto come hai detto tu:

    [PHP]
    <?
    $sql = "SELECT registro_attestati., a_admin., DATE_FORMAT(registro_attestati.data_fine_corso, '%d-%m-%Y') AS data_fine_corso
    FROM registro_attestati, a_admin
    WHERE registro_attestati.id_admin=a_admin.id_admin";

    if (strtolower($_REQUEST["ORDER1"])=="DESC")
    {
    $sql.= "ORDER BY registro_attestati.id_registro_attestati DESC";
    }
    else if(strtolower($_REQUEST["ORDER2"])=="DESC")
    {
    $sql.= "ORDER BY registro_attestati.cognome_corsista DESC";
    }
    else
    {
    $sql.= "ORDER BY registro_attestati.id_registro_attestati";
    }

    $result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
    $row = mysql_fetch_array($result);
    ?>
    [/PHP]

    solo che mi da questo errore:

    errore You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY registro_attestati.id_registro_attestati' at line 3


  • User Attivo

    [PHP] <?
    $sql = "SELECT registro_attestati., a_admin., DATE_FORMAT(registro_attestati.data_fine_corso, '%d-%m-%Y') AS data_fine_corso
    FROM registro_attestati, a_admin
    WHERE registro_attestati.id_admin=a_admin.id_admin";

    if (strtolower($_REQUEST["ORDER1"])=="DESC")
    {
    $sql.= " ORDER BY registro_attestati.id_registro_attestati DESC";
    }
    else if(strtolower($_REQUEST["ORDER2"])=="DESC")
    {
    $sql.= " ORDER BY registro_attestati.cognome_corsista DESC";
    }
    else
    {
    $sql.= " ORDER BY registro_attestati.id_registro_attestati";
    }

    $result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
    $row = mysql_fetch_array($result);
    ?> [/PHP]

    forse c'era uno spazio in meno, prova questo!!!


  • User Attivo

    ah, ci vuole lo spazio prima di ORDER! Ok, infatti ora non mi da più errore, però i pulsanti non funzionano, se clicco non succede niente:

    <a href="<?=$PHP_SELF?>?ORDER1=DESC&SORT=id_registro_attestati"><img src="../images/freccia_giu.gif" width="10" height="17" border="0"></a>
    <a href="<?=$PHP_SELF?>?ORDER1=ASC&SORT=id_registro_attestati"><img src="../images/freccia_su.gif" width="10" height="17" border="0"></a>

    <a href="<?=$PHP_SELF?>?ORDER2=DESC&SORT=cognome_corsista"><img src="../images/freccia_giu.gif" width="10" height="17" border="0"></a>
    <a href="<?=$PHP_SELF?>?ORDER2=ASC&SORT=cognome_corsista"><img src="../images/freccia_su.gif" width="10" height="17" border="0"></a>


  • User Attivo

    nel esempio che ti avevo mandato prima, il "DESC" era minuscolo, dato che tu fai un strtolower


  • User Attivo

    SSSIIIIII!!!! GRAZIEEEEE ora funziona!!!!! 🙂

    Però quante cose che ancora non conosco del php...:(
    Ciao vado a studiare 😄


  • User Attivo

    Buon lavoro, a ke te serve studiare se hai il forum GT a disposizione???

    HEHEHEH

    Studia che ti fa bene!!!!!!

    Ciao!!!!