Page 1 sur 1
Warning: Warning: mysql_num_fields() et mysql_fetch_row()
Posté : 10 oct. 2012, 08:04
par atoss77
Bonjour à tous
J'ai un code ou il me trouve 2 erreurs :
La première : Warning: mysql_num_fields() expects parameter 1 to be resource, boolean
La deuxième : Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean
En pèce le page .php
Merci pour votre aide
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 08:30
par Mazarini
Il y a surement une erreur lors du mysql-query().
Le contrôle de la bonne exécution de la requete via mysql_error()/mysql_errno() peut t'aider.
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 08:52
par atoss77
Merci
mais je dois le mettre où dans le code mysql_error()
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 09:05
par Mazarini
après le mysql_query() :
if (mysql_errno() <> 0) affichage de messages (ordre sql, mysql_error()...) et arrêt du traitement
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 09:07
par moogli
salut,
par exemple
<?php
// Ne pas oublier la connexion et la selection de base avant ;)
$sql = 'select truc from machin';
$ret = mysql_query($sql);
if ($ret === false)
echo '<p class="erreurSQL">Erreur SQL :<br />'.mysql_error().'<br />Avec la requête : '.$sql.'</p>';
}
else {
// Traitement de la requête
mysql_free_result($ret);
}
?>
@+
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 09:20
par Mazarini
Personnellement, je préfère me baser sur mysql_errno() car il m'arrive de traiter certains codes erreurs comme les "duplicate key" que je contrôle par la requete de maj pour éviter un select en plus.
Mais c'est une question d'habitude et de préjuger.
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 09:24
par atoss77
Merci pour vos réponse
mais cela ne fonctionne pas
mysql_errno() doit être où ?
pouvez vous regarde le fichier joint AO - Copie (2)
Merci
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 09:46
par Mazarini
Ajoute la fonction :
<?PHP
function db_query($SQL,$link) {
$result = mysql_query($SQL, $link) ;
if ($result===false) {
echo mysql_errno(),' : ',mysql_error(),'<br>',$SQL;
exit;
}
return $result;
}
?>
Et remplace les mysql_query par db_query dans le script.
Tu utilisaras au choix :
($result===false) ou ($mysql_errno()<>0) dans la fonction
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 10:03
par atoss77
Peux tu me mettre ta fonction dans mon fichier
car je n'y arrive pas
Merci d'avance
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 10:49
par Mazarini
Qu'est ce qui t'empêche de mettre la fonction en début de ton fichier et de remplacer mysql_query par db_query dans le reste du fichier ?
Le problème à la base est que l'appelle à la fonction mysql_query() peut ne pas fonctionner pour diverse raisons : serveur qui ne fonctionne pas, erreur dans le code, modification de la base...
Il faut donc vérifier que la fonction s'est bien exécuté tout de suite après l'appel et la fonction mysql_errno() permet cela ainsi que la valeur retournée par la fonction. C'est valable pour pas mal de fonction comme l'ouverture d'un répertoire, l'ouverture d'un fichier...
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 11:11
par atoss77
j'ai mis la fonction au début et remplacer mysql_query par db_query dans le reste du fichier
Mais ça me marche pas
Merci
Re: Warning: Warning: mysql_num_fields() et mysql_fetch_row
Posté : 10 oct. 2012, 11:32
par Mazarini
...
Mais ça me marche pas
...
Ce n'est pas suffisant comme information pour corriger ton problème.
D'ailleurs, la modification que l'on t'as proposé avait pour but d'obtenir un message d'erreur pour corrigé en fonction de ce message.