2010-01-26 7 views
4

Pourquoi est-ce que je ne peux pas entrer dans la boucle while dans la fonction getCustomers()?Avoir un problème étrange avec mysql_fetch_array()

$stores = $bl->getStoresForGuide($gID); //Returns 6 stores 
$storelist = getStoreList($stores);  //Generate the HTML for the store list 
$brandlist = getCustomers($stores);  //Generate the HTML for brand list 

function getStoreList($stores) 
{ 
    while ($row = mysql_fetch_array($stores)) { 
    // Do stuff 
    } 
//return result 
} 


function getCustomers($stores) 
{ 
    echo mysql_num_rows($stores); //Outputs 6 

    while ($row = mysql_fetch_array($stores)) { 
    echo "test "; // Outputs nothing 
    } 
    // Return some result 
} 

Répondre

5

Vous effectuez deux boucles. La première fois que vous bouclez, vous arrivez à la fin et le pointeur n'est pas réinitialisé avant que vous ne reboutiez.

Si vous êtes sûr de vouloir faire cela, consultez mysql_data_seek et recherchez le début du résultat. Sinon, je recommande simplement de stocker les résultats et d'itérer sur le tableau.

+0

Merci. Je ne le savais pas. J'ai mis le résultat dans un tableau, et ça marche bien maintenant. – Steven

0

Vous appelez d'abord getStoreList, puis au moment où vous appelez getCustomers, $stores a déjà obtenu toutes ses lignes récupérées.