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

    Order by.. e poi lo scelgo io

    ciao, mi spiego subito

    ho una tabella con i dati di una squadra di calcio, ogniuno ha un ruolo

    1.pippo. allenatore
    2.mario. centrocampista
    3.fabbio. difensore
    4.claudio. attaccante
    5.flavio. portiere

    Io ora dovrei estrapolare i dati ed ordinarli come decido io, quindi

    prima tutti gli allenatori, poi tutti i portieri, difensori, centrocampisti e attaccanti.

    Ovviamente order by id, nome o ruolo non funziona, perchè non sarebbero ordinati giusti.

    come potrei fare? thx sin da ora

  2. #2
    Una scorciatoia che mi viene in mente è fare 4 select con il ruolo nel WHERE

  3. #3
    chiaro, ci ho pensato anchio in effetti, però i ruoli sono 15, e l'amministratore del sito dovrà poterne aggiungere quanti ne vuole un giorno, o cambiarli di posizione, quindi dovrei trovare una strada + semplice

    ipoteticamente

    order by portiere poi difensore poi centrocampista poi ecc....

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    unica query per non appesantire poi lavori con l'array.

    Fai un cilco e per ogni ruolo inserisci qul record(array) in un nuovo array es.: $portieri[] = $array_ciclo.

    alla fine usi i nuovi array per le diverse categorie
    La vita e' uno switch();

  5. #5
    è vero, non ci avevo pensato..

    ora devo solo vedere un po' come farlo, thx

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    foreach($result as $key=>$record){

    switch($result[$key]['ruolo']){
    case 'portiere':
    $portieri[] = $result[$key];
    break;
    case 'attaccante':
    //....
    break;
    }

    }
    dovrebbe andare bene cosi o una cosa simile cmq
    La vita e' uno switch();

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da progalba
    i ruoli sono 15, e l'amministratore del sito dovrà poterne aggiungere quanti ne vuole un giorno, o cambiarli di posizione
    quindi avrai una tabella contenente i ruoli, spero

  8. #8
    puoi anche fare un'altra tabella in cui associ un numero di ordinamento al ruolo (che magari puoi anche cambiare con un'interfaccia per admin), per esempio una tabella di due colonne:
    "RUOLO, PRIORITA'", dove, nel tuo caso, ci sarà una riga "allenatore,1", ecc...

    quindi fai una query che unisce le due tabelle.

    esempio:

    tab_giocatori: ID,NOME,RUOLO
    tab_ruoli: RUOLO,PRI
    Codice PHP:
    query="SELECT 
                  tab_giocatori.NOME,
                  tab_giocatori.RUOLO,
                  tab_ruoli.RUOLO AS nome_ruolo,
                  tab_ruoli.PRI
               FROM tab_giocatori,tab_ruoli 
               WHERE tab_ruoli.RUOLO = tab_giocatori.RUOLO 
               ORDER BY tab_ruoli.PRI"

    così dovrebbe funzionare. non l'ho testato...ma credo sia giusto...

  9. #9
    ah wow! io mi ero accontentato di aver trovato la strada ma così ho anche il mezzo per arrivarci più facilmente.


    diciamo che marco80 mi hai dato un ottima soluzione per un'altro problema analogo che avevo, mentre

    mano82 penso che opterò per questa soluzione, in quanto un giorno dovrà poter aggiungere o ordinare i ruoli come vuole il cliente.

    in ogni caso grazie mille a tutti e 2, userò tutte e 2 le soluzioni in due situazioni diverse.

    Ottimo thx!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.