• User Attivo

    c'è un po di casino nelle variabili che passi!

    "<?=$PHP_SELF?>?lavoro=&SORTORDER=ASC&SORTORDE R=data_chiamata"

    hai stampato nella query la var che gli passi?


  • User Attivo

    la query iniziale è questa:

    [PHP]
    SELECT registro_chiamate., a_admin.,
    DATE_FORMAT(registro_chiamate.data_chiamata, '%d-%m-%Y') AS data_chiamata
    FROM registro_chiamate, a_admin
    WHERE registro_chiamate.id_admin AND registro_chiamate.destinatario=a_admin.id_admin
    ORDER BY registro_chiamate.data_chiamata DESC, registro_chiamate.ora_chiamata DESC
    [/PHP]


  • User Attivo

    ops, scusa mi sa che ho capito male.

    Mi chiedi se ho stampato nella query la var che gli passo?
    Come faccio a stampare nella query la var che gli passo?

    echo e poi?


  • User Attivo

    se la var si chiama ord_data_chiamata e ord_ora_chiamata o se le usi come una semplicemente ord fai così:

    $query = "SELECT registro_chiamate., a_admin.,
    DATE_FORMAT(registro_chiamate.data_chiamata, '%d-%m-%Y') AS data_chiamata
    FROM registro_chiamate, a_admin
    WHERE registro_chiamate.id_admin AND registro_chiamate.destinatario=a_admin.id_admin
    ORDER BY registro_chiamate.data_chiamata ".$_GET['ord'].", registro_chiamate.ora_chiamata " .$_GET['ord']


  • User Attivo

    la query lo cambiata così:

    [php]
    SELECT registro_chiamate., a_admin.,
    DATE_FORMAT(registro_chiamate.data_chiamata, '%d-%m-%Y') AS data_chiamata
    FROM registro_chiamate, a_admin
    WHERE registro_chiamate.id_admin AND registro_chiamate.destinatario=a_admin.id_admin
    ORDER BY registro_chiamate.data_chiamata ".$_GET['ORDER']."
    [/php]e nel link ho messo questo:

    <a href="<?=$PHP_SELF?>?pagina=ORDER=ASC&ORDER=data_chiamata">data</a>

    però poi se clicco sul link 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 'data_chiamata' at line 4

  • User Attivo

    manda tutto il pezzo di php, query e variabili, così nn si capisce la situazione!


  • User Attivo

    ti allego la prova che ho fatto ora con la variabile cognome_corsista

    [PHP]
    <table width="650" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td height="1" colspan="6" valign="top" bgcolor="BE743F"></td>
    </tr>
    <tr>
    <td width="80" height="41"><span class="testo_rosso_bold">n. attest.</span></td>
    <td width="170"><span class="testo_rosso_bold">nome</span></td>
    <td width="150">
    <?
    $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.cognome_corsista ".$_GET['ORDER']."";
    $result = mysql_query($sql, $conn) or die ("errore ".mysql_error());
    $row = mysql_fetch_array($result);
    ?>
    <span class="testo_rosso_bold"><a href="<?=$PHP_SELF?>?pagina=ORDER=ASC&ORDER=cognome_corsista">cognome su</a></span>

    <span class="testo_rosso_bold"><a href="<?=$PHP_SELF?>?pagina=ORDER=DESC&ORDER=cognome_corsista">cognome giu</a></span>  
    </td>
    <td width="100"><span class="testo_rosso_bold">luogo</span></td>
    <td width="80"><span class="testo_rosso_bold">corso</span></td>
    <td width="70"><span class="testo_rosso_bold">data corso</span></td>
     </tr>
      <tr>
    <td height="1" colspan="6" valign="top" bgcolor="BE743F"></td>
    </tr>
    

    <?
    while($row=mysql_fetch_array($result)){
    ?>
    <tr>
    <td height="41"><span class="testo_grigio_bold">
    <a href="<?=$PHP_SELF?>?lavoro=<?=$row[id_registro_attestati]?>&pagina=2">
    <img src="../images/menu_triangolo.gif" width="16" height="10" border="0">
    <?=$row['id_registro_attestati']?></a>
    </span>
    </td>
    <td><span class="testo_grigio_bold"><?=$row['nome_corsista']?></span></td>
    <td><span class="testo_grigio_bold"><?=$row['cognome_corsista']?></span></td>
    <td><span class="testo_grigio_bold"><?=$row['luogo_rilascio_attestato']?></span></td>
    <td><span class="testo_grigio_bold"><?=$row['tipo_attestato']?></span></td>
    <td>
    <span class="testo_grigio_bold"><?=$row['data_fine_corso']?></span>
    </td>
    </tr>
    <tr>
    <td height="1" colspan="6" valign="top" bgcolor="BE743F"></td>
    </tr>

    <?
        }
    

    ?>
    </table>
    [/PHP]


  • User Attivo

    se usi sto link nn funzionerà di certo, dato che tu cerchi la var ORDER e come valore ha data_c hiamata, mentre deve avere o ASC o DESC


  • 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