Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369

    Problema ciclo fetch_array

    Salve a tutti, ho un codice che esegue queste operazioni:

    Codice PHP:
    $query "SELECT * FROM table
        WHERE Data='
    $date'
        ORDER BY ID ASC"
    ;
    $result mysql_query($query$db);
    if(
    mysql_num_rows($result) != 0){
        echo 
    mysql_num_rows($result);
        while(
    $data=mysql_fetch_array($result)){
            
    //Fai conti
            //Chiama una funzione
        
    }

    Il problema è questo: mysql_num_rows restituisce correttamente 2, ma purtroppo all'interno del while fa 1 solo ciclo!! Sinceramente non capisco proprio perchè

    La funzione la chiama, la esegue correttamente ed essa ritorna correttamente, dimostrabile dal fatto che se metto del codice dopo la chiamata a funzione lo esegue correttamente.

    La seconda riga nel database non è ovviamente vuota, ma è molto simile alla prima. L'unica cosa con la quale non ho mai bazzicato sono le variabili globali. Dentro alla funzione dichiaro 3 variabili globali:

    $db (per la connessione al database)
    $data (ovvero il valore di ritorno di mysql_fecth)
    $v (un vettore che mi serve).

    li dichiaro globali tramite la dicitura:

    Codice PHP:
    global $db
    Ho anche provato a cambiare la variabile di ritorno del fetch con una temporanea per evitare che fosse proprio quella ad essere globale:

    Codice PHP:
    while($data_tmp=mysql_fetch_array($result)){
            
    $data $data_tmp;
            
    //Fai conti
            //Chiama una funzione
        

    ma ovviamente non è cambiato nulla.

    Non so proprio che controllare, attendo lumi

    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    così cosa ottieni? :

    Codice PHP:
    $query "SELECT * FROM table 
        WHERE Data='
    $date
        ORDER BY ID ASC"

    $result mysql_query($query$db); 
    $numrows mysql_num_rows($result);

    var_export($query); echo '
    '
    ;
    echo 
    $numrows; echo '
    '
    $i 0;
    if (
    $numrows>0){ 
        while (
    $data=mysql_fetch_array($result)) { 
            echo ++
    $i;echo '
    '
    ;var_export($data); echo '
    '
    ;echo '
    '
    ;
        };
    }; 
    ...posta il risultato qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    369
    Sono un'idiota.

    Il problema era che in una query più interna nel while, riusavo $result come risultato, che ovviamente andava a sovrascrivermi quello precedente

    Vabbè scusate se vi ho fatto perdere tempo, grazie mille della risposta!!

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.