Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > PHP et mysql_query et mysql_fetch_array > Lecture du sujet

PHP et mysql_query et mysql_fetch_array

COmment fairE ?? !!!

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne gaerebut # Posté le 24/07/2008 à 11:24:41
Groupe : Membres
Bonjour à tous !!

c'est une question un peu bête mais je n'arrive pas a savoir si a la suite d'un requête mysql, on peut vérifier si il y a un résultat!

En gros, j'ai une requête qui transforme en tableau les données via mysql_fetch_array et qui liste les élément de la bdd.
En revanche, si il y a rien a lister, comme puis-je détecter cela et notamment inscrire un petit message à l'utilisateur ?!!!

Merci à tous ;)
Connecté Jetable # Posté le 24/07/2008 à 11:38:24
Avatar
Groupe : Membres
En regardant de près la fonction mysql_query() et en particulier les valeurs de retour, tu devrais trouver quelque chose ^^

Whatever...
 
Hors ligne gaerebut # Posté le 24/07/2008 à 11:49:21
Groupe : Membres
Ben qu'il y est un resultat ou pas, ça me renvoie une truc du genre ressource id #3
Hors ligne shine-neko # Posté le 24/07/2008 à 11:56:38
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
C'est que tu as du faire un echo dessus

Et c'est pas vraiment possible uniquement des fonctions faites pour ça :)
Les mysql_fetch_*

La v3 de Shine-Shiina est sortit
Qui n'a jamais rêver d'apprendre a dessiner , Cuisiné japonnais dévorer de nouveaux manga fait par des copains et d'apprendre le japonais ?
=> La réponse se trouve ici
Image utilisateur

 
Hors ligne george258 # Posté le 24/07/2008 à 12:02:04
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Ou très simplement un mysql_num_rows($req) sur ta requête ($req étant la variable qui contient le mysql_query()), qui te dira combien la requête te renvoie d'enregistrements...
Si c'est aucun, tu affiches un message, sinon tu listes.
Mais il me semble aussi que tu peux faire un truc avec un if ($req), regarde sur la doc, ça doit être marqué...
Bonne chance !

Aussi, préfère les mysql_fetch_assoc() aux mysql_fethc_array(), le serveur aura moins de choses à retourner !
Pour l'exemple, avec le array, il te fait des doublons qui sont que rarement utiles :
Code : Autre
1
2
3
4
5
6
7
8
9
Avec *_assoc()
[champ1] => lecontenuduchamp1
[champ2] => lecontenuduchamp2

Avec *_array()
[1] => lecontenuduchamp1
[champ1] => lecontenuduchamp1
[2] => lecontenuduchamp2
[champ2] => lecontenuduchamp2
Édité le 24/07/2008 à 12:03:28 par george258
 
Hors ligne gaerebut # Posté le 24/07/2008 à 12:04:19
Groupe : Membres
Ben oui je m'en doute mais ma condition je là met ou déjà ? APrès mysql_query ou dans la boucle while du mysql_fetch_array ?

Puis je met quoi dans ma condition ? lol

if (empty($var_query)) {... } ????

if (empty($var_fetch_array)) {... } ???

LOL

MErci en tout cas pour votree aide
Hors ligne bartoli # Posté le 24/07/2008 à 12:16:33
Groupe : Membres
Si tu utilises mysql_fecth_array avec beaucoup de données tu dois faire une boucle avec (surement while)

celle-ci doit t'afficher tes données mais lorsqu'il n'y a pas de données ca doit juste rien affichés, ce qui veut dire pas de passage dans la boucle (sauf si c'est un do...while() )
si c'est le cas tu souhaites affichés un message

alors pourquoi ne pas tout simplement meme une petite variable $i qui s'incremente dans ta boucle (prealablement declaré à $i = 0)
ainsi si aucune reponse n'est trouvé ton $i reste à 0

tu n'as plus qu'a faire un petit test if($i == 0) avec ton message a afficher


ps : c'est surement la solution la plus legere ^^
Édité le 24/07/2008 à 12:20:51 par bartoli
Hors ligne george258 # Posté le 24/07/2008 à 13:01:44
Avatar
Groupe : Membres
Citation : gaerebut
Ben oui je m'en doute mais ma condition je là met ou déjà ? APrès mysql_query ou dans la boucle while du mysql_fetch_array ?

Puis je met quoi dans ma condition ? lol

if (empty($var_query)) {... } ????

if (empty($var_fetch_array)) {... } ???

LOL

MErci en tout cas pour votree aide

Tu mets ta condition entre ton $req = mysql_query(); et ton while($data = mysql_fetch_assoc($req))
Ensuite, bah tu fait juste un truc de ce genre :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?php
$req = mysql_query();
if (mysql_num_rows($req) >= 1)
{
 echo '<ul>';
  while($data = mysql_fetch_assoc($req))
  {
  // Ta boucle normale...
  }
 echo '</ul>';
}
else
{
  echo 'Cette table est vide';
}
?>


Pour la solution de bartoli :
Citation : bartoli
alors pourquoi ne pas tout simplement meme une petite variable $i qui s'incremente dans ta boucle (prealablement declaré à $i = 0)
ainsi si aucune reponse n'est trouvé ton $i reste à 0

tu n'as plus qu'a faire un petit test if($i == 0) avec ton message a afficher

C'est faisable, mais il faut que stocke les résultat éventuels dans une variable, pas besoin de $i++...
Cette solution, est je pense plus légère, après faut vérifier, ce qui donnerais ça :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
$contenu = '';
$req = mysql_query();
while ($data = mysql_fetch_assoc($req))
{
$contenu .= 'Ce qu\'on afficherais avec un echo en temps normal';
}
if (!empty($contenu)) echo $contenu;
else echo 'Cette table est vide';
?>


Bonne chance !
Édité le 24/07/2008 à 13:05:12 par george258
 

Retour au forum "PHP" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 441 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1265s (0.1035s)