Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Ordinamento per nome o data di titoli

    Ciao a tutti,

    come potrei fare in php per far sì che un visitatore possa ordinare i titoli di una pagina web o per nome o per data senza database?
    Cioè esiste una funzione per fare queste due cose?
    altrimenti (se non si può nell'altro modo), con database MySQL come si fa?
    tnx!

  2. #2
    non ha senso che esista una funzione standard per fare questa cosa.... è troppo personalizzato

    nella pagina hai una lista di record estratti da un database e organizzati in colonne e righe? se è così, sull'intestazione della colonna puoi mettere un link (su ogni intestazione per la quale vuoi permettere l'odinamento); questo link porta alla stessa pagina passando due parametri da usare per l'ordinamento.

    chiamiamoli ad esempio "order_id" e "order_type", dove il primo può essere un numero che dice al tuo programma che stai ordinando per quel campo particolare (ad esempio, assegni a "nome" l'id 1 e a "data" l'id 2, per distinguerli internamente). "order_type" invece può valere "ASC" oppure "DESC" in modo da decidere se ordinare secondo un campo particolare in modo crescente o decrescente.

    all'apertura della pagina leggi questi due campi:

    Codice PHP:
    $order_id $_GET['order_id'];
    $order_type $_GET['order_type']; 
    e fai qualche controllo... se i campi sono nulli vuol dire che è la prima volta che l'utente apre questa pagina del sito e non ha ancora impostato nessun ordinamento personalzzato, quindi in tal caso gli assegni dei valori di default.

    se invece i due valori esistono, costruisci la query in modo da ordinare i record come vuole l'utente. tramite il campo "order_id" ricavi il nome del campo della tabella per il quale devi fare l'ordinamento, e tramite il campo "order_type" imposti il senso.

    Codice PHP:
    // assegnazione valori di default se campi vuoti
    if (empty($order_id))
       
    $order_id 1;

    if (empty(
    $order_type))
       
    $order_type 'DESC';

    // recupero del campo di ordinamento
    if ($order_id==1)
       
    $order_field 'nome';
    elseif (
    $order_id==2)
       
    $order_field 'data';

    // costruzione della query
    $rs=mysql_query("SELECT lista_di_campi FROM tabella ".
       
    ORDER BY ".$order_field.$order_type$dbLink); 

  3. #3
    ok tnx...


  4. #4
    comunque, per curiosità:

    è possibile anche senza database?
    Utilizzando files txt e cicli?

    sarebbe una cosa molto molto macchinosa però possibile...

    ...o no? :master:

  5. #5
    se hai i dati su un array puoi usare le funzioni sort per ordinare i dati
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    ah...e sort come funziona esattamente?
    Se ad esempio vogli ordinare in ordine alfabetico questi elementi
    codice:
    $Elementi = array ("albero", "bianco", "cedro");
    come si fa?


    (sono un po' niubbetto )

  7. #7
    Originariamente inviato da Timeguardian
    Se ad esempio vogli ordinare in ordine alfabetico questi elementi
    codice:
    $Elementi = array ("albero", "bianco", "cedro");
    ma un esempio con parole che non sono gia' ordinate non potevi scriverlo ???



    Originariamente inviato da Timeguardian
    come si fa?
    e' scritto tutto qua'
    http://it2.php.net/manual/it/function.sort.php

    fai un po' di prove
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    lol tnx!

  9. #9
    ok scusate ancora, per l'ordinamento in ordine alfabetico sono a posto...

    Per quanto riguarda l'ordinamento x data, sort o simili mi possono aiutare?

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.