Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema Return Array

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99

    Problema Return Array

    Salve Ragazzi
    Ho un problema nel far ritornare da una function un array proveniente da una query.
    Ho una funzione del tipo:

    function read_clow($cam,$type) {
    $time=time();

    $select="Select * from....";
    $risultato=mysql_query($select) ;
    $riga=mysql_fetch_array($risultato);
    return $riga;
    }

    Nella pagina php:
    $rd=read_clow($cam,"Ftb_Mr3");

    Ora in $rd mi vien restituito soltato la prima riga dell'intero array estratto da quella Select.
    Come faccio a farmi ritornare l'intero array e non solo la prima riga?

    Grazie

  2. #2
    Codice PHP:
    function read_clow($cam$type) {
        
    $time=time();

        
    $select="Select * from....";
        
    $risultato=mysql_query($select) ;
        return 
    $risultato;

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3

    Re: Problema Return Array

    Originariamente inviato da cadan2
    Ora in $rd mi vien restituito soltato la prima riga dell'intero array estratto da quella Select.
    Come faccio a farmi ritornare l'intero array e non solo la prima riga?
    La funzione mysql_fetch_array() restituisce un record, sotto forma di array le cui chiavi sono i nomi dei campi estratti, ogni volta che viene chiamata. Quindi se la chiami una volta e' evidente che ti restituisce un solo record.

    Se vuoi un array che contenga tutti i record restituiti dalla query, devi eseguire un ciclo e chiamare mysql_fetch_array() tante volte quante sono le righe del risultato e aggiungere ognuno degli array restituiti ad un array "contenitore".

    NOTA: la funzione postata da satifal restituisce una risorsa, non un array.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    99

    Re: Re: Problema Return Array

    Originariamente inviato da k.b
    La funzione mysql_fetch_array() restituisce un record, sotto forma di array le cui chiavi sono i nomi dei campi estratti, ogni volta che viene chiamata. Quindi se la chiami una volta e' evidente che ti restituisce un solo record.

    Se vuoi un array che contenga tutti i record restituiti dalla query, devi eseguire un ciclo e chiamare mysql_fetch_array() tante volte quante sono le righe del risultato e aggiungere ognuno degli array restituiti ad un array "contenitore".

    NOTA: la funzione postata da satifal restituisce una risorsa, non un array.
    E quindi se passo la risorsa come ha fatto Satifal e nella pagina php dove prendo il valore scrivo:

    $rd=read_clow($cam,"Ftb_Mr3");
    $riga=mysql_fetch_array($rd);

    mi ritrovo nell'altra pagina a questo punto l'array il $riga da poter scorrere ??

  5. #5

    Re: Re: Problema Return Array

    Originariamente inviato da k.b
    La funzione mysql_fetch_array() restituisce un record, sotto forma di array le cui chiavi sono i nomi dei campi estratti, ogni volta che viene chiamata. Quindi se la chiami una volta e' evidente che ti restituisce un solo record.

    Se vuoi un array che contenga tutti i record restituiti dalla query, devi eseguire un ciclo e chiamare mysql_fetch_array() tante volte quante sono le righe del risultato e aggiungere ognuno degli array restituiti ad un array "contenitore".

    NOTA: la funzione postata da satifal restituisce una risorsa, non un array.
    piccola correzione: mysql_fetch_array restituisce un array con sia chiavi associative che con chiavi numeriche, quindi su una tupla id,nome,cognome,eta crea un array

    [0] => 1002020
    [id] => 1002020
    [1] => Mario
    [nome] => Mario
    [2] => Rossi
    [cognome] => Rossi
    [3] => 26
    [eta] => 26

    dunque è meglio usare mysql_fetch_assoc che restituisce un array solamente associativo (o mysql_fetch_object che restituisce un oggetto) oppure mysql_fetch_row che restituisce un array con i soli indici numerici.

  6. #6

    Re: Re: Re: Problema Return Array

    Originariamente inviato da cadan2
    E quindi se passo la risorsa come ha fatto Satifal e nella pagina php dove prendo il valore scrivo:

    $rd=read_clow($cam,"Ftb_Mr3");
    $riga=mysql_fetch_array($rd);

    mi ritrovo nell'altra pagina a questo punto l'array il $riga da poter scorrere ??
    Codice PHP:
    $rd=read_clow($cam,"Ftb_Mr3");

    while (
    $riga mysql_fetch_array($rd)) {
        ...

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Ho avuto anche io la necessità di una funzione che mi restituisse un array di risultati da una query (per passarlo poi ad un template engine). Ho fatto così

    function read_clow($cam,$type) {
    $time=time();

    $select="Select * from....";
    $risultato=mysql_query($select) ;
    $r=array();
    while ($riga=mysql_fetch_array($risultato)){$r[]=$riga};
    return $r;
    }

    Se la query non restituisce risultati allora l'array restituito dalla funzione è vuoto.

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