Visualizzazione risultati 1 fino 11 di 11

Discussione: Modificare ordinamento dei dati

  1. #1
    Guest

    Predefinito Modificare ordinamento dei dati

    Ciao a tutti.
    Sono un neofita i Php e MySql e stò approntando un sito per la mia gelateria. Visto che il forum mi ha già aiutato una volta, ci riprovo.
    In una pagina di amministrazione che mi visualizza i dati di una tabella ordinati alfabeticamente, vorrei inserire un link href per aggiornare la pagina ordinando i dati non più alfabeticamente ma secondo il valore di un campo booleano. E poi magari un'altro link per ritornare alla vista in ordine alfabetico.
    Qualcuno può venirmi in aiuto?

    Grazie a tutti

    Marco

  2. #2
    L'avatar di unlocketor
    unlocketor non è connesso Utente
    Data registrazione
    23-09-2005
    Residenza
    Catania
    Messaggi
    147

  3. #3
    Guest

    Predefinito

    La query è questa

    $result = @mysql_query('SELECT id, gusto, vetrina FROM gusti ORDER BY gusto');

    Vorrei inserire la possibilità di ordinare la tabella secondo un altro campo con un cick

  4. #4
    Guest

    Predefinito

    Potresti recuperare il valore di una variabile che poi recupererai con $_GET['variabile'].
    Esempio:

    pagina-gelati.php oppure
    pagina-gelati.php?ordinamento=0 oppure
    pagina-gelati.php?ordinamento=1 oppure
    pagina-gelati.php?ordinamento=2

    Codice PHP:
    $query='SELECT id, gusto, vetrina FROM gusti ORDER BY gusto'; //query di "default"

    if ($_GET['ordinamento']==1){
    $query='SELECT id, gusto, vetrina FROM gusti ORDER BY vetrina';
    }
    if (
    $_GET['ordinamento']==2){
    $query='SELECT id, gusto, vetrina FROM gusti ORDER BY vetrina desc';
    }

    $result = @mysql_query($query);
    Nel caso di più alternative puoi utilizzare uno switch

    Ciao

  5. #5
    Guest

    Predefinito

    Grazie mille! Provo subito.

    EDIT: Ciao, AlterGuru. Sì il tuo codice funziona, anche se dapprincipio mi dava dei problemi perché invece di usare valori interi, passavo come variabile direttamente il nome della colonna:

    pagina-gelati.php?ordinamento=vetrina

    Comunque, mo' funziona. Posto qui il codice leggermente modificato casomai fosse utile a qualcun altro

    Codice PHP:
    $query = 'SELECT id, gusto, vetrina FROM gusti ORDER BY gusto';

    if (isset(
    $_GET['order'])){
    $ordinamento = $_GET['order'];
    if (
    $ordinamento == 2) {
    $query = 'SELECT id, gusto, vetrina FROM gusti ORDER BY vetrina DESC, gusto ';
    }
    elseif (
    $ordinamento == 1) {
    $query = 'SELECT id, gusto, vetrina FROM gusti ORDER BY gusto ';
    }
    }

    $result = @mysql_query($query);
    Grazie ancora e ciao

    [MOD] No doppi posts!
    Ultima modifica di mythologia : 25-06-2008 alle ore 22.59.29

  6. #6
    L'avatar di unlocketor
    unlocketor non è connesso Utente
    Data registrazione
    23-09-2005
    Residenza
    Catania
    Messaggi
    147

    Predefinito

    Devi fare un'aggiunta al tuo codice per dare un minimo di sicurezza perchè in questo modo è molto semplice hackerare quella query.

    Aggiungi:

    $ordinamento = htmlentities($ordinamento);

    per filtrare i caratteri speciali...

  7. #7
    Guest

    Predefinito

    La cosa migliore è forzare la conversione al tipo intero del valore della variabile ordinamento; sostituisci:

    Codice PHP:
    $ordinamento = $_GET['order'];
    con
    Codice PHP:
    $ordinamento = (int)$_GET['order'];
    e magari (un pò da paranoico) sostituisci anche:

    Codice PHP:
    $result = @mysql_query($query);
    con

    Codice PHP:
    $query=mysql_real_escape_string($query)
    $result = @mysql_query($query);
    Anche se probabilmente, la soluzione suggerita da unlocketor dovrebbe essere sicura...

    Ciao

  8. #8
    Guest

    Predefinito

    Ho eseguito le istruzioni e vi ringrazio. Il tutto funziona come dovrebbe, solo che gli ultimi suggerimenti relativi alla sicurezza mi rimangono del tutto oscuri. Appena avrò un attimo di tempo (tra figlie, gelati e codici...) mi informerò su questa mysql_real_escape_string.

    Grazie mille! Ciao

    PS: il sito dovrebbe essere pronto tra breve (sto litigando con una select incrociata per comuni e provincie). Ad ogni buon conto l'url è www.gelaterialacadorina.com: se siete in zona venite che vi offro un gelato.

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da lacadorina Visualizza messaggio
    se siete in zona venite che vi offro un gelato.
    Lo ricorderò!

    Chissà se domani si presenterà qualcuno che si "spaccierà" per qualcuno di questo forum...

    Ciao

  10. #10
    Guest

    Predefinito

    Scusate l'intrusione, non vorrei mettere in dubbio la vostra parola e magari mi sbaglio, ma sinceramente mi sembra che così come è stato fatto inizialmente, non ci sia alcun rischio che il valore passato con la get possa influire in qualche modo con le query causando problemi di sicurezza...

    "I programmi fanno solo e soltanto quello che gli fate fare, nient'altro..."
    Ultima modifica di ivano85 : 28-06-2008 alle ore 18.29.26

  11. #11
    Guest

    Predefinito

    Certo se il contenuto di $_GET['qualcosa'] non viene dato in pasto alla query non c'è nessun problema...

    Ma se si sceglie (per esempio) di passare come parametro il nome di una tabella...

    Poi, personalmente, non conoscendo benissimo il php, tendo sempre a prende qualche precauzione in più...

    Ciao

Regole di scrittura

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