Erreur d'exécution d'une boucle sur mysql_fetch_row

Eléphanteau du PHP | 20 Messages

13 juil. 2012, 10:22

J'ai implémenté une fonction qui me retourne le résultat d'une requête voici mon code :

Code : Tout sélectionner

function ShowListFields($table) { mysql_select_db($this->database, $this->dbp); $fields = array(); while ($row = mysql_fetch_row(mysql_query("SHOW COLUMNS FROM {$table}", $this->dbp))) { $fields[] = array( 'name' => $row[0], 'type' => $row[1], 'null' => $row[2], 'key' => $row[3], 'default' => $row[4], 'extra' => $row[5] ); } return $fields; }
Alors mon problème c'est cette erreur fatale "Erreur maximum execution time of 30 seconds exceeded" probablement à cause d'une boucle infinie, ce qui est étrange c'est que ça fonctionnait très bien et tout à coup ça ne marchait plus en me générant cette erreur j'ai essayé en ajoutant set_time_limit(0); à chaque itération et pour le coup la page met un temps infini pour se charger. Heeeeeeeelp please !!

ViPHP
xTG
ViPHP | 7331 Messages

13 juil. 2012, 10:36

Le problème c'est qu'à chaque itération tu révalue la condition du while et donc tu refais un mysql_query().
Donc boucle infinie car tu traites toujours que le premier résultat. ;)

Eléphanteau du PHP | 20 Messages

13 juil. 2012, 10:52

Oui je viens de m'en apercevoir, je l'ai modifié et ça marche merci.

Eléphanteau du PHP | 20 Messages

13 juil. 2012, 10:54

Par contre là il me fait mysql_fetch_row() expects parameter 1 to be resource, boolean given in

ViPHP
ViPHP | 2577 Messages

13 juil. 2012, 11:05

Bonjour,

Ca arrive lorsque la requête rencontre un problème lors de l'exécution (non connecté, base inconnue, erreur sql...). Voir mysql_error() pour savoir quel problème.