Mysql_fetch_array() problème si vide
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Commençons par mon code :
Mon soucis : ceci sert à trier les publications par catégorie que l'on choisit avant et qui se mettent dans $ordre.
Le problème est que si j'ai une catégorie qui n'a aucune publication dedans, il y a cette erreur là :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/the-secret/www/actus.php
Ce que je voudrais, c'est un code qui, quand il n'y a pas de publications, affiche un message. Mais il n'y a pas de "else" à un while. Comment faire ?
Merci.
Commençons par mon code :
$sql = ("SELECT * FROM publications ORDER BY $ordre DESC LIMIT 0,20");
$req = mysql_query($sql);
while($data = mysql_fetch_array($req))
{
des trucs
}
Mon soucis : ceci sert à trier les publications par catégorie que l'on choisit avant et qui se mettent dans $ordre.
Le problème est que si j'ai une catégorie qui n'a aucune publication dedans, il y a cette erreur là :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/the-secret/www/actus.php
Ce que je voudrais, c'est un code qui, quand il n'y a pas de publications, affiche un message. Mais il n'y a pas de "else" à un while. Comment faire ?
Merci.
A voir également:
- Mysql_fetch_array() problème si vide
- Supprimer page word vide - Guide
- Caractere vide - Guide
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
- Nb si ens non vide ✓ - Forum Excel
- Formaté mais pas de connexion Internet ? ✓ - Forum Matériel & Système
1 réponse
Bonjour,
Je ferais quelque chose comme suit:
Je ferais quelque chose comme suit:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=TA_DB', 'USER', 'MDP');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$count_categorie = 0;
$stmt= $bdd->query("SELECT * FROM publications ORDER BY '.$ordre.' DESC LIMIT 0,20");
while($data= $stmt->fetch()) {
++$count_categorie
des trucs
}
$stmt->closeCursor();
if ($count_categorie == 0) {
echo "Il n'y a pas de catégorie.";
}
?>
C'est pour accéder à ta base de données. Tu remplaces TA_DB par le nom de ta base de données, user par le nom d'utilisateur et mdp par ton mot de passe.
J'attribue la valeur 0 à une variable.
Je fais la requête à ta base de donnée comme tu as fait dans ton code.
Tant qu'il y a des données à afficher, on fait des trucs, et j'augmente à chaque fois la valeur de la variable $count_categorie par 1. Je libère ensuite la connexion au serveur avec closeCursor();
Note: je viens de déplacer l'endroit où j'avais mis $stmt->closeCursor(); dans le code, il est bien à l'extérieur de la fermeture de l'accolade.
Si la variable $count_categorie est égale à 0 (donc, s'il n'y a pas eu de catégories affichées), j'affiche un message qui dit "Il n'y a pas de catégorie".
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given
Fatal error: Call to a member function closeCursor() on a non-object
La seconde erreur est probablement dû au fait que tu as conservé ton code initial et tu as rajouté le mien. Ma variable $stmt est donc inconnue et closeCursor() te donne une erreur.
Finalement j'ai trouvé ^^
Merci.