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

    Contatore per i risultati di una query...

    Dunque...

    Ho una tabella PIPPO composta da:

    id - tipo contatore, autoincrementante, chiave
    campo_1 - qualcosa
    campo_2 - qualcosa
    campo_3 - qualcosa

    ho la necessità di fare una query su campo_1, campo_2, campo_3.
    I risultati della query dovrebbero essere accompagnati da un "contatore".
    In pratica i risultati della query dovrebbero presentarsi come segue:

    1 || valore x campo 1 || valore x campo 2 || valore x campo 3 ||
    2 || valore x campo 1 || valore x campo 2 || valore x campo 3 ||
    3 || valore x campo 1 || valore x campo 2 || valore x campo 3 ||
    4 || valore x campo 1 || valore x campo 2 || valore x campo 3 ||
    5 || valore x campo 1 || valore x campo 2 || valore x campo 3 ||
    ecc.. ecc..

    I valori restituiti dal contatore dovrebbero presentarsi in maniera omogenea, senza "buchi", per cui per il terzo record restituito dalla query il contatore deve valere esattamente 3, per il quinto deve valere esattamente 5 e così via.
    Non posso, pertanto, usare il campo id come contatore perchè in questo caso si presentarebbero dei "buchi" ogni qualvolta si eliminasse un record dalla tabella.

    Provvisoriamente ho risolto in questo modo:

    ########################################
    select

    p1.campo_1,
    p1.campo_2,
    p1.campo_3,
    (select count(id) from PIPPO p2 where p2.id<p1.id) as contatore

    from

    PIPPO p1

    order by p1.id
    ########################################

    Questa soluzione funziona abbastanza bene se si mantiene l'ordinamento per id, ma, ovviamente, sballa completamente se si tenta un altro tipo di ordinamento, ad esempio per campo 1.

    Qualcuno ha una soluzione da suggerirmi?

    Grazie infinite,

    Francesco.
    Lupo
    ----

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non puoi crearlo tu il contatore?

    dentro il ciclo che legge i contenuti della riga puoi semplicemente mettere una variabili $i che a ogni ciclo viene incrementata...

    comunque se leggi il man:

    http://fr.php.net/manual/it/function...etch-array.php

    esiste anche un valore opzionale da passare per farsi restituire un array con indice numerico.

    per vedere cosa ottieni, dopo il fetch array prova a stampare il risultato di print_r($row) (assumento che in $row hai messo il risultato di mysql_fetch_array)

    ciao

  3. #3
    Ti ringrazio molto per la risposta.

    Purtroppo, per motivi che sarebbe troppo lungo spiegare, ho bisogno che il contatore sia restituito direttamente come risultato della query.

    Saluti,
    Francesco.
    Lupo
    ----

  4. #4
    Trovata una soluzione per questo problema? Sarei interessato..

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.