Warning: mysql_fetch_array() expects parameter 1 to be resource,

Bonjour,

Tout fonctionnait bien jusqu'a vendredi et hop, plus rien ne fonctionne avec ce code, sans raison évidente. Qu'est ce qui peut expliquer cela ?

Merci.

Message d'erreur :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

Code :
<?php

require_once('../login/auth.php');
require_once '../header.php';
require_once 'config.php';
require_once '../db.php';

$link = mysql_connect($opts['hn'], $opts['un'], $opts['pw']);

if(!$link) {
    die('Failed to connect to server: ' . mysql_error());
}

//Select database
$db = mysql_select_db($opts['db']) or die("Unable to select database");

$query = "SELECT count(*) as cnt FROM Providers WHERE id=".$_GET['idd']." and id_type=2";

$resultt=mysql_query($query);
//$resultt=mysql_query($query) or die("Unable to get query");

$row=mysql_fetch_array($resultt);

?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Je pense (mais j'en ai pas la preuve) que c'est ta fonction
    mysql_query
    qui échoue et donc te renvoier FALSE (qui est un booléen).

    Ensuite Php te dit que le paramètre 1 doit être une resource (ce qui aurait été le cas si ta requête n'avait pas échoué) et non un booléen.

    En espérant t'aider.
    1. Bonjour, oui effectivement, mais ceci est arrivé vendredi sans aucun changement ni dans la base de donnée ni le code php, je me demandais si des mises à jours sql ou autres pouvaient affecter le code et comprendre le probleme ? Merci.
    2. Quand tu parles de mises à jour SQL, tu parles de modification dans ta base de données ?
    3. En effet je pense aussi que le problème se trouve dans ta fonction mysql_query ! essaie de produire une requete simple et d'afficher ce qu'elle renvoie pour vérifier si elle fonctionne.

      Si c'est le cas c'est que tu as tu modifier ta base et que tu dois modifier ta requete SQL en conséquence !
    4. @Choka38bonsoir, rien n'a changé, ni le code ni la bdd
      j'ai en fait 2 pgm php indépendants, tous les 2 sont concernés, ce n'est donc ni la bdd ni le code, un changement extérieur de sql ? php ?
      merci
    5. alors un changement de serveur ? une mise à jour de la version de php du serveur?
  2. Bonsoir

    Essaye
    $resultt=mysql_query($query) or die(mysql_error());
    pour voir la cause de l'erreur.
    1. Ou affiche nous ton $resultt, visiblement ça renvoie un bool (enfin c'est ce que dit le message d'erreur).

      Si tu prends ton $query et que tu l'executes direct sur ton serveur sql ta requete fonctionne ?
    2. +1 les 2 choses à faire pour traquer l'erreur(voire de manière générale):

      _Ajouter le or die avec l'erreur(les messages d'erreurs sont activés par défaut, si ce n'est opas le cas il faut les activer).
      _Encore plus simple tester la requête en console sur la BDD ça indiquera déjà si le problème vient du SQL.

      Pour mysql_query c'est une fonction dépréciée(par interdite jusqu'à PHP6, pour la v7 je ne sais pas) car présente des problèmes de sécurité et de gestion des ressources.

      Remplacée avantageusement il y a une dizaine d'années par les fonctions/objets PDO Object il serais peut être temps de vous y mettre pour avoir un code correct(attention je dis pas que ça ne peuit pas marcher mais que ça présente de problèmes et qu'il faut l'éviter).