Visualizzazione risultati 1 fino 8 di 8

Discussione: Visualizzare il numero di riga

  1. #1
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito Visualizzare il numero di riga

    Ho una domanda, come posso visualizzare il numero di riga di una query? Mi spiego meglio, ho una query che mi calcola una classifica, dal valore più alto a quello più basso, è possibile sapere anche la posizione nella query? sarebbe rappresentato dal numero di riga che contiene il risultato...faccio un esempio

    Codice PHP:
    $query=mysql_query("SELECT sum(risultato) AS tot FROM risultati ORDER BY tot DESC");
    Codice:
    risultato della query
    tot
    120
    90
    80
    ..
    ..
    Codice:
    si può fare in modo che esca
    indice tot
    1       120
    2         90
    3         80
    ..         ...
    Chi troppo vuole....vuole LionAlex...

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Basta aggiungere un contatore al ciclo di acquisizione dati dalla query:
    Codice PHP:
    $result = mysql_query ($query, $db);

    $count = 0; // conteggio delle righe
    while ($line = mysql_fetch_array ($result))
    {
    // incrementa e stampa il contatore
    echo (++$count);

    // fai il resto delle operazioni...
    }
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    questo è per il conteggio delle righe, mentre io ricordo (ma non bene) che esiste un comando SQL che fa visualizzare già la riga nella QUERY SQL...
    Chi troppo vuole....vuole LionAlex...

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Sinceramente... non vedo l'esigenza di farlo tramite mySQL l'incremento dell'indice di riga...
    Ho sempre fatto come suggerisce dementialsite.
    Comunque puoi provare a fare query del genere (molto scomodo direi), settando una variabile:
    SET @pos=0;
    SELECT @pos:=@pos+1 rowidx, sum(risultato) tot FROM risultati ORDER BY tot DESC;

    e poi nel fetch usi $row['rowidx'] per stamparlo..
    Almeno a me questo viene in mente lato mySQL, se ci sono altri modi ben vengano.
    Ultima modifica di heracleum : 24-06-2006 alle ore 22.49.43
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Thumbs up

    capisco le vostre perplessità, forse spiegandovi a cosa mi serve capirete meglio perchè ho chiesto queste informazioni. In pratica gestisco un fantacalcio e mi serviva confrontare i risultati di due classifiche per vedere se una squadra rispetto alla classifica precedente si trovava più in alto o più in basso. Per fare questo ho a disposizione solo la lista dei punteggi per ogni giornata, quindi con il SUM mi ricavo il punteggio totale, poi con l'ORDER mi creo la classifica e mi serviva appunto il numero di riga (che rappresenterebbe la posizione in classifica) per confrontare eventuali discese o salite....prima lo facevo portandomi tutto in un array, ma credo che farlo direttamente con una chiamata SQL sia più veloce e più efficace...se esiste un modo più rapido accetto consigli...cmq grazie per l'interessamente, il metodo del @pos funziona
    Chi troppo vuole....vuole LionAlex...

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Sì @pos mer modo di dire.. quella è il nome di una variabile qualsiasi
    Puoi anche fare @pippo (per la cronaca )
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da lionalex
    capisco le vostre perplessità, forse spiegandovi a cosa mi serve capirete meglio perchè ho chiesto queste informazioni. In pratica gestisco un fantacalcio e mi serviva confrontare i risultati di due classifiche per vedere se una squadra rispetto alla classifica precedente si trovava più in alto o più in basso. ...
    Per quanto riguarda quello che vorresti fare, dovresti, almeno in teoria:
    - aggiungere un campo "pos_precedente" alla tua tabella
    - usare una query di aggiornamento (UPDATE) per aggiornare tutte le posizioni della tabella.

    È proprio qui il problema: quest'ultima query andrebbe ripetuta una volta per ciascuno dei record della tua tabella... decisamente troppo (in termini di query utilizzate)!!!

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #8
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Predefinito

    non capisco perchè l'UPDATE....cmq ho trovato un modo più semplice dal lato del costo dell'algoritmo. Faccio come facevo prima....mi memorizzo la classifica precedente in un array e poi confronto con la nuova e vedo un po' ogni squadra rispetto all'indice dell'array in che posizione si trova con la classifica aggiornata.
    Chi troppo vuole....vuole LionAlex...

Regole di scrittura

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