Visualizzazione risultati 1 fino 23 di 23

Discussione: [PHP] Scelta "order by"

  1. #1
    Guest

    Predefinito [PHP] Scelta "order by"

    Ciao!
    Questa è la parte di codice:
    Codice PHP:

    <?PHP
    $sqlonline
    = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE 1 AND CUCCIOLI LIKE '%' ORDER BY CUCCIOLI ASC";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());
    ?>
    Ora, facendo cosi necessariamente la pagina viene "ordinata" per nome del cucciolo... ma se volessi lasciare all' utente la possibilità di scelta dell' ordine tra nome, età e razza come dovrei fare?

    Grazie :)

  2. #2
    Guest

    Predefinito

    devi ordinare secondo un campo che viene passato tramite GET:

    Codice PHP:
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $query = "SELECT * FROM cuccioli ORDER BY {$_GET['campo']} {$_GET['order']}";
    poi rimetti la tua query...

  3. #3
    Guest

    Predefinito

    occhio alle injection !

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da jostock
    devi ordinare secondo un campo che viene passato tramite GET:

    Codice PHP:
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $query = "SELECT * FROM cuccioli ORDER BY {$_GET['campo']} {$_GET['order']}";
    poi rimetti la tua query...

    Ehm, grazie... ma credo di non aver capito :D

    Questo lo metto al posto del codice postato prima, ma in che modo faccio la selezione ?

  5. #5
    Guest

    Predefinito

    con un link o un form html, come preferisci
    esempio :
    Codice:
    <a href="ordina.php?campo=razza&order=asc">link</a>

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da Inverno
    occhio alle injection !
    Giusto.
    Codice PHP:
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $query = "SELECT * FROM cuccioli ORDER BY {$_GET['campo']} {$_GET['order']}";

  7. #7
    Guest

    Predefinito

    giusto, avevo scritto il codice di fretta e non ho aggiunto le slash...

    ecco il codice completo

    Codice PHP:
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da jostock
    giusto, avevo scritto il codice di fretta e non ho aggiunto le slash...

    ecco il codice completo

    Codice PHP:
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());

    Parse error: syntax error, unexpected '{' in /membri/zannadiluna/index.php on line 70

    non va!

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Se la riga 70 è questa prova a fare così:
    Codice PHP:
    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY ."$_GET['campo']." ".$_GET['order'];
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    non sembra esserci errore di apertura/chiusura parentesi nel codice di jostock; controlla all'interno dell'intero codice della tua index l'esatto corrispondenza di coppie di '{' e '}', sicuramente troverai una parentesi in più!


    -- Aut Roma Aut Nihil!

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Se la riga 70 è questa prova a fare così:
    Codice PHP:
    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY ."$_GET['campo']." ".$_GET['order'];
    Più o meno il risultato è lo stesso...

    Parse error: syntax error, unexpected '{' in /membri/zannadiluna/index.php on line 71



    N.B. Seneca, non credo che l'errore sia nel codice "mio" (non perchè creda chissà che eh...), ma perchè prima di sostituire la parte di codice, il file andava, anche se non avevo possibilità di scegliere l'ordine. Ed infatti pure "tornando indietro" riprende ad andare...

  12. #12
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Cerca la riga 70 o 71 del file e tutte quelle intorno e scrivicele.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Cerca la riga 70 o 71 del file e tutte quelle intorno e scrivicele.
    Codice PHP:
    <?PHP
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());



    $CONTA = 0;

    while(
    $ROW3 = mysql_fetch_array($conteggio))
    {
    $CUCCIOLO=$ROW3["CUCCIOLO"];
    $ETA=$ROW3["ETA"];
    $RAZZA=$ROW3["RAZZA"];


    {
    $num++;
    }

    $CONTA += 1; // Aggiunta *
    $APPLICA_COLORE = (($CONTA % 2) > 0) ? "class='table1'" : "";// Aggiunta *
    ?>

    A regola è qui, dato che poi c'è solo la tabella che richiama i vari dati <?=$CUCCIOLO?> <?=$ETA?> e <?=$RAZZA?>

  14. #14
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    la parentesi che apri per il ciclo while dove la chiudi?


    -- Aut Roma Aut Nihil!

  15. #15
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Codice PHP:
    <?PHP
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());



    $CONTA = 0;

    while(
    $ROW3 = mysql_fetch_array($conteggio))
    {
    $CUCCIOLO=$ROW3["CUCCIOLO"];
    $ETA=$ROW3["ETA"];
    $RAZZA=$ROW3["RAZZA"];


    $num++;
    }

    $CONTA += 1; // Aggiunta *
    $APPLICA_COLORE = (($CONTA % 2) > 0) ? "class='table1'" : "";// Aggiunta *
    ?>
    Ho cancellato la parentesi aperta prima di $num++;.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da seneca
    la parentesi che apri per il ciclo while dove la chiudi?
    Avevo già provato a "chiuderla" prima di num, però mi dava comunque errore, che infatti si presenta anche con la versione ultima di funcool:

    Parse error: syntax error, unexpected '{' in /membri/zannadiluna/index.php on line 70


    Inoltre, sospettavo che il problema non fosse quello, anche perchè quel { era lì anche nel codice "iniziale" che va.


    Non capisco proprio dov'è l'errore



    EDIT: Nel dubbio e nel caso possa essere d'aiuto, posto tutto il codice:
    Codice PHP:
    <?
    session_start
    ();
    include (
    "config.inc.php");

    ?>
    <link rel="stylesheet" href="../stile.css" type="text/css">
    <title></title>
    <style>
    a:link {font-size: 11px;font-weight: bold; color : black;text-decoration : none;}
    a:visited {font-size:11px;font-weight: bold;color : black;text-decoration : none;}
    a:hover {font-size: 11px;font-weight: bold;color : 800000;text-decoration : none;}


    .table1 {
    background: #87B1C7;
    color:#000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2:
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }

    .table2 {
    background: #B4D1E0;
    color:#000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2;
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }

    .tabella3 {
    background: #B4D1E0;
    color:#000000;
    font-family: Verdana;
    font-size: 10px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2;
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }
    </style>

    <body bgcolor=B4D1E0 leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <div align="center">
    <table width=95% border=0 cellspacing=0 cellpadding=0>
    <tr><td>
    <table class="table2" width=100% border=0 cellspacing=0 cellpadding=0>
    <tr>
    <td align="center" class="table2" colspan=2 height=15>Cucciolo</td>
    <td align="center" class="table2" height=15>Età</td>
    <td align="center" class="table2" height=15>Razza</td>
    </tr>

    <?PHP
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());



    $CONTA = 0;

    while(
    $ROW3 = mysql_fetch_array($conteggio))
    {
    $CUCCIOLO=$ROW3["CUCCIOLO"];
    $ETA=$ROW3["ETA"];
    $RAZZA=$ROW3["RAZZA"];


    $num++;
    }

    $CONTA += 1; // Aggiunta *
    $APPLICA_COLORE = (($CONTA % 2) > 0) ? "class='table1'" : "";// Aggiunta *
    ?>



    <tr <?=$APPLICA_COLORE?>>
    <td class="BlackL"><?=$num?>.<td height=20 class="BlackB"><?=$CUCCIOLO?></td>
    <td height=20 class="BlackB" align="center"><?=$ETA?></td>
    <td height=20 class="BlackL" align="center"><?=$RAZZA?>
    </td>
    </tr>
    <?
    }
    @
    mysql_close ($connessione);
    ?>
    </table></td>
    </tr>

    </table>
    </body>
    Ultima modifica di zannadiluna : 06-04-2006 alle ore 13.07.37

  17. #17
    Guest

    Predefinito

    Codice PHP:
    <?
    session_start
    ();
    include (
    "config.inc.php");

    ?>
    <link rel="stylesheet" href="../stile.css" type="text/css">
    <title></title>
    <style>
    a:link {font-size: 11px;font-weight: bold; color : black;text-decoration : none;}
    a:visited {font-size:11px;font-weight: bold;color : black;text-decoration : none;}
    a:hover {font-size: 11px;font-weight: bold;color : 800000;text-decoration : none;}


    .table1 {
    background: #87B1C7;
    color:#000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2:
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }

    .table2 {
    background: #B4D1E0;
    color:#000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2;
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }

    .tabella3 {
    background: #B4D1E0;
    color:#000000;
    font-family: Verdana;
    font-size: 10px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2;
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }
    </style>

    <body bgcolor=B4D1E0 leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <div align="center">
    <table width=95% border=0 cellspacing=0 cellpadding=0>
    <tr><td>
    <table class="table2" width=100% border=0 cellspacing=0 cellpadding=0>
    <tr>
    <td align="center" class="table2" colspan=2 height=15>Cucciolo</td>
    <td align="center" class="table2" height=15>Età</td>
    <td align="center" class="table2" height=15>Razza</td>
    </tr>

    <?PHP
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());



    $CONTA = 0;

    while(
    $ROW3 = mysql_fetch_array($conteggio))
    {
    $CUCCIOLO=$ROW3["CUCCIOLO"];
    $ETA=$ROW3["ETA"];
    $RAZZA=$ROW3["RAZZA"];


    $num++;
    }

    $CONTA += 1; // Aggiunta *
    $APPLICA_COLORE = (($CONTA % 2) > 0) ? "class='table1'" : "";// Aggiunta *
    ?>



    <tr <?=$APPLICA_COLORE?>>
    <td class="BlackL"><?=$num?>.<td height=20 class="BlackB"><?=$CUCCIOLO?></td>
    <td height=20 class="BlackB" align="center"><?=$ETA?></td>
    <td height=20 class="BlackL" align="center"><?=$RAZZA?>
    </td>
    </tr>
    <?
    //}
    // Ho commentato la parentesi qui sopra perché non chiude niente.
    @mysql_close ($connessione);
    ?>
    </table></td>
    </tr>

    </table>
    </body>
    Ho commentato una graffa che non chiudeva nulla. Così va?

  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da tuttoeniente2
    Codice PHP:
    <?
    session_start
    ();
    include (
    "config.inc.php");

    ?>
    <link rel="stylesheet" href="../stile.css" type="text/css">
    <title></title>
    <style>
    a:link {font-size: 11px;font-weight: bold; color : black;text-decoration : none;}
    a:visited {font-size:11px;font-weight: bold;color : black;text-decoration : none;}
    a:hover {font-size: 11px;font-weight: bold;color : 800000;text-decoration : none;}


    .table1 {
    background: #87B1C7;
    color:#000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2:
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }

    .table2 {
    background: #B4D1E0;
    color:#000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2;
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }

    .tabella3 {
    background: #B4D1E0;
    color:#000000;
    font-family: Verdana;
    font-size: 10px;
    border: 1px #000000 Solid;
    border-bottom-color: #5E8193;
    border-left-color: #CCE6F2;
    border-right-color: #5E8193;
    border-top-color: #CCE6F2;
    }
    </style>

    <body bgcolor=B4D1E0 leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <div align="center">
    <table width=95% border=0 cellspacing=0 cellpadding=0>
    <tr><td>
    <table class="table2" width=100% border=0 cellspacing=0 cellpadding=0>
    <tr>
    <td align="center" class="table2" colspan=2 height=15>Cucciolo</td>
    <td align="center" class="table2" height=15>Età</td>
    <td align="center" class="table2" height=15>Razza</td>
    </tr>

    <?PHP
    if( !isset($_GET['campo'] )
    {
    $_GET['campo'] = 'nome';//Setta quello di default
    }

    if( !isset(
    $_GET['order']) )
    {
    $_GET['order'] = 'ASC';//setta quello di default
    }

    $_GET['campo'] = addslashes($_GET['campo']);
    $_GET['order'] = addslashes($_GET['order']);

    $sqlonline = "SELECT CUCCIOLI.CUCCIOLO, CUCCIOLI.ETA, CUCCIOLI.RAZZA WHERE CUCCIOLI LIKE '%' ORDER BY {$_GET['campo']} {$_GET['order']}";
    $conteggio = mysql_query($sqlonline,$connessione) or die(mysql_error());



    $CONTA = 0;

    while(
    $ROW3 = mysql_fetch_array($conteggio))
    {
    $CUCCIOLO=$ROW3["CUCCIOLO"];
    $ETA=$ROW3["ETA"];
    $RAZZA=$ROW3["RAZZA"];


    $num++;
    }

    $CONTA += 1; // Aggiunta *
    $APPLICA_COLORE = (($CONTA % 2) > 0) ? "class='table1'" : "";// Aggiunta *
    ?>



    <tr <?=$APPLICA_COLORE?>>
    <td class="BlackL"><?=$num?>.<td height=20 class="BlackB"><?=$CUCCIOLO?></td>
    <td height=20 class="BlackB" align="center"><?=$ETA?></td>
    <td height=20 class="BlackL" align="center"><?=$RAZZA?>
    </td>
    </tr>
    <?
    //}
    // Ho commentato la parentesi qui sopra perché non chiude niente.
    @mysql_close ($connessione);
    ?>
    </table></td>
    </tr>

    </table>
    </body>
    Ho commentato una graffa che non chiudeva nulla. Così va?

    Niente da fare anche cosi (quella { nel codice "iniziale" chiudeva il while)... cambia nuovamente la posizione, ma l'errore resta:

    Parse error: syntax error, unexpected '{' in /membri/zannadiluna/index.php on line 64

    Mo è alla linea 64. Inizia ad essere un pò troppo bizzarra sta cosa

  19. #19
    Guest

    Predefinito

    if( !isset($_GET['campo'] )

    manca una parentesi

  20. #20
    Guest

    Predefinito

    Azz, non me n'ero accorto. Corretta quella funziona?

  21. #21
    Guest

    Predefinito

    Yeah!
    Ora va tutto perfettamente :D

    Grazie mille

  22. #22
    Guest

    Predefinito

    bene, chiudo!

  23. #23
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da jostock
    bene, chiudo!
    Chiudo.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •