Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Ordinare Risultati in ordine crescente con SORT

    Ciao raga credetemi ma sto per uscire di testa.

    avrei la necessità di ordinare i risultati di una query in relazione ai risultati di una funzione
    fatta all'interno della query stessa

    ho visto la funzione SORT....ma nn riesco ad implementarla.
    es.
    ------------------------------------------------------------------------------------
    $query = "SELECT * FROM mia_tabella";
    $ris = mysql_query($query);
    while($arrays = mysql_fetch_array($ris))
    {
    $valore_da_calcolare = $arrays[valore_da_calcolare];
    sommo = calcola($valore_da_calcolare)


    }
    ------------------------------------------------------------------------------------
    non so se è la stanchezza, ma non riesco a venirne a capo...

    qualcuno mi riesce a dare 1 input.


    Vi ringrazio in anticipo...Celex
    Gestionale Strutture Ricettive...http://www.celexdesign.it

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Puoi spiegare meglio che ordinamento vorresti ottenere?

  3. #3
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    in ordine crescente?
    prova così :
    $query = "SELECT * FROM mia_tabella ORDER BY nomecampo ASC";

    - per utilizzare l'ordinamento ascendente[ASC] o discendente [DESC] specifica il campo da ordinare con la keyword ORDER BY.

    ciao

  4. #4
    Ciao nicola75ss, inanzitutto grazie.... :-)

    all'interno della query la funzione "calcola" mi restituirà dei valori...

    es.
    12
    5
    6
    47
    20
    9
    8

    vorrei che questi risulati mi vengano ordinati in ordine crescente
    Gestionale Strutture Ricettive...http://www.celexdesign.it

  5. #5
    Ciao hyde82 grazie anche a te...


    non posso ordinarli con ORDER BY
    (perchè io in questa fase non sò il valore del dato ke voglio ordinare)....
    Gestionale Strutture Ricettive...http://www.celexdesign.it

  6. #6
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    quindi "calcola" restituisce un array di valori numerici calcolati in base ad un campo specifico prelevato dal db e dato in pasto alla funzione?

  7. #7
    si....xfetto
    Gestionale Strutture Ricettive...http://www.celexdesign.it

  8. #8
    Beh è semplice, se vengono restituiti i risultati all'interno di un array non dovrai fare altro che fare:

    mettere i risultati dal db all'array (che chiamerò $array) e nella riga sotto scrivi
    sort ($array) oppure per avere un ordine migliore fa al caso tuo natsort($array).

    La differenza tra il primo e il secondo è che il primo ordina in questo modo:

    1 10 11 12 13.... 2 20 21 22... 3 30 31 32 ecc ecc

    con nat sort invece viene contato in maniera naturale

    1 2 3 4 5 6 7...

  9. #9
    Ok...adesso ci provo....
    Gestionale Strutture Ricettive...http://www.celexdesign.it

  10. #10
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    ciao simon....ma cosa vuol dire mettere i risultati dal db all'array????....la funzione mysql_fetch_array genera già un array associativo .... come ha già fatto celex.Il problema è quello di ordinare un array monodimensionale restituito da una funzione.In questo caso la funzione sort può essere applicata facilmente es.

    $valori = array(valore1,valore2,valore3);
    sort($valori);

    e poi attraversarlo così:

    foreach ($valori as $key => $val) {

    e stamparlo a video

    echo "Valore[" . $key . "] = " . $val . "\n";
    }
    Il problema , e questo è solo un mio dubbio ,è quello di sapere se effettivamente la funzione "calcola" restituisce effettivamente un array monodimensionale.In tal caso bisognerebbe controllarlo facendo un piccolo debug con la funzione array_values es.

    print_r(array_values($valori));

    se il debug risulta del tipo:

    Array
    (
    [0] => valore1
    [1] => valore2
    [2] => valore3
    )

    allora è sufficente usare la funzione sort con l'array restituito dalla funzione "calcola" e poi attraversarlo con un ciclo come sopra.

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.