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

    recuperare TUTTE LE RIGHE di 1 risultato

    de facto la funzione mysql_fetch_array associa 1 riga ad un array, infatti

    mysql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

    io avrei la necessità di recuperarle tutte in 1 sol colpo diciamo,esiste una funzione apposita o me la devo creare?
    dovrei forse ricorrere a qualche classe?

    questo perchè nel momento in cui ciclo i dati NON VOGLIO utilizzare un'istruzione propria di my_sql, quindi ad esempio:
    Codice PHP:
    $Rows mysql_fetch_all_rows($RecordSet); // è un esempio ma non esiste!
    foreach($Rows as $Row)
    {
      echo 
    $Row['nomecampo'];
    }
    // NON UTILIZZO il fetch_array nel ciclo! 
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2

    Re: recuperare TUTTE LE RIGHE di 1 risultato

    Originariamente inviato da max161
    de facto la funzione mysql_fetch_array associa 1 riga ad un array, infatti

    mysql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

    io avrei la necessità di recuperarle tutte in 1 sol colpo diciamo,esiste una funzione apposita o me la devo creare?
    A parte il fatto che mysql_fetch_array associa 1 riga a due indici di array uno numerico, l'altro associativo, se per recuperarle tutte di un botto solo significa avere tutto il result set in un array, non devi fare altro che mettercelo tu.

    Pero' usa mysql_fetch_assoc oppure mysql_fetch_row altrimenti i risultati saranno doppi.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    mmm

    se ti serve leggerle tutte ti devi fare un ciclo...ma devi avere un buon ... buonissimo motivo per farlo xche il tempo di esecuzione, per quella parte, praticamente raddoppia dato che devi prima eseguire un ciclo per estrarre i dati e poi eseguire un'altro ciclo per elaborarli ^^

  4. #4
    ho capito, quindi devo crearmi una funzione? nb. guarda la modifica al primo messaggio,ho spiegato un po' meglio....
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  5. #5
    Originariamente inviato da max161
    ho capito, quindi devo crearmi una funzione? nb. guarda la modifica al primo messaggio,ho spiegato un po' meglio....
    No hai peggiorato.... la funzione mysql_fetch_array and C. non e' di mysql, ma di php ottimizzata per mysql. Qualunque cosa farai sara' al massimo uguale.....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Originariamente inviato da daniele_dll
    mmm

    se ti serve leggerle tutte ti devi fare un ciclo...ma devi avere un buon ... buonissimo motivo per farlo xche il tempo di esecuzione, per quella parte, praticamente raddoppia dato che devi prima eseguire un ciclo per estrarre i dati e poi eseguire un'altro ciclo per elaborarli ^^
    il motivo è che recupero i dati tramite il metodo "select" di una classe astratta,quindi nella classe figlia non voglio doverli ciclare con un'istruzione php per mysql, questo perchè il metodo "select" dovrebbe secondo logica restituire un'oggetto contenente TUTTE LE RIGHE del risultato ed indipendente da DB, di conseguenza se in futuro cambio DB mi basta adattare con una classe di astrazione al DB SOLO la mia classe astratta e non tutte le figlie...
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  7. #7
    Trasferisci tutte le righe con un ciclo while dentro ad un array. Non puoi recuperare in un botto solo "TUTTI" i record set. Questi dati vengono messi in un buffer e letti un record alla volta. Alla stregua di un array. Se usi l'indice numerico eviti pure il nome del campo.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    ho risolto cambiando (in meglio) la logica della classe,dato che prima di default il metodo select applicava ad ogni riga del risultato il template, ora posso decidere quale operazione debba fare per ogni riga...mi sembra la cosa + logica e flessibile.

    grazie 1000!
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  9. #9
    Ciao,
    se devi inserire tutto il dataset in un array puoi usare mysql_unbuffered_query per prelevare il result, risparmi qualcosa nel'overhead.
    Altrimenti alla fine del ciclo ricordati di applicare mysql_free_result sul result (forse quest'ultima accortezza è applicabile anche al risultato di un unbuffered query)
    per favore NIENTE PVT TECNICI da sconosciuti

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.