Ordinare array in base al valore

  • Creatore Discussione Creatore Discussione ReWeNgE
  • Data di inizio Data di inizio

ReWeNgE

Nuovo Utente
24 Ago 2009
10
0
0
Ciao a tutti

Sto cercando di ordinare un array così composto

$farm[$i][0] = codice
$farm[$i][G] = giacenza
$farm[$i][D] = giorno
$farm[$i] = settimana
$farm[$i][M] = mese
$farm[$i][F] = fine

ottenendo praticamente al momento della stampa una tabella tipo

immaginefg.jpg


vorrei, poter cliccare su "fine giacenza" e riottenere la tabella ordinata per i valori contenuti in quella tabella.. ho cercato di capire il funzionamento di usort e simili, ma non riesco ad usarle per il mio caso
 
io direi che quando clicchi sul nome della colonna che vuoi ordinare puoi indirizzare l'utente alla stessa pagina e passi per 'get' un valore ORDINA a cui assegni il nome del campo della tabella (per esempio FINE_GIACENZA) e fatti gli opportuni controlli sul campo ordina in ricezione inserisci quel valore nella query che permette di ordinare.
Codice:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
Se vuoi creare anche la possibilità che l'utente può ri-cliccare su quel nome oltre al valore ORDINA dovresti passarti anche un altro valore che indica l'ordine crescente o decrescente. Ovviamente devi mettere un controllo che ti dica se hai appena stampato in ordine crescente per avere il link che ti indirizza al decrescente e viceversa.
Non so se ci sono metodi molto più semplici o già pronti. Ma in generale io userei questo metodo non conoscendone altri.
 
ciao
un piccolo particolare, da quello che vedo usi un array di array, quindi non devi usare solo sort, mi sembra che se guardi tra gli articoli di pho o sul blog ci sia qualcosa che tratta l'ordinamento di array di array
 
mmm a quanto pare tu metti tutta la tua tabella in una matrice e poi la stampi...perchè non prendere una riga a volta e stamparla con un ciclo? senza inserire tutto nella matrice con un ciclo e poi stampare tutta la matrice con un altro? (correggimi se non hai fatto in questo modo).
 
ciao
se come dice giustamente longo estrai i dati da una tabella del db le cose si semplificano moltissimo senza passare per un array. ti basta un get sulla colonna che puoi ordinare come vuoi in funzione del $_GET o meno
 
personalmente ti consiglio di usare jquery esattamente tablesort, eros cettico anche io ma dopo un pò di sbattimenti sono risucito a farlo funzionare ed è na meraviglia.

Non so se posso postare il lik ma basta che cerchi in google. tablesorter jquery o vai sul sito ufficiale di jquery

ciao
 
ciao
scusate ragazzi, ma per ora almeno, ReWeNgE sta cercando di ordinare un array tutto quello che avete consigliato è più che giusto... ma se ReWeNgE non avesse (o non volesse) usare un db?
 

Discussioni simili