IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Déterminer si le résultat d'une requête est vide ou non


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut [SQL] Déterminer si le résultat d'une requête est vide ou non
    bonsoir,

    voici tout d'abord mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while( $result = mysql_fetch_array( $requete ) ) {
    			         if (empty($result["Id"])){
    			echo ("<option value=\"rien\">rien</OPTION>");
    						}
    					else {
    						echo ("<option value=\"".$result["Id"]."\">".$result["marque"].", ".$result["type"].", ".$result["modele"]."</option>");
    			        }
    		        }
    le principe me semble assez simple mais je peine à le mettre en place

    la boucle me permet donc de créer une liste déroulante reprenant chaque occurrence trouvée dans ma base selon une requete sql .

    je veux corser un peu les chose en testant ma requete sql ($result) et mentionner dans ma liste déroulante, si ma requete est vide: "rien"

    ca focntionne très bien quand ma requete sql contient des occurrences (elles s'affichent), par contre quand la requete ne contient rien, ben ma liste reste deseperement vide.

    je suis perdu

    @ votre bon coeur msieur, dame

    Merci

    PS: mon ideal était de faire, d'abord un "if" puis si ma requete était non vide, alors faire une while pour remplir la liste déroulante. Dans le cas ou elle était vide, créer une boite texte avec marqué "rien" dedans. mais marche encore moins bien.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    La condition doit être placée hors de l'itération et en se basant sur le résultat de la fonction mysql_num_rows (retourne le nombre de résultats) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (mysql_num_rows($requete) == 0) {
    	echo '<option value="rien">rien</option>';
    } else {
    	while ($result = mysql_fetch_assoc($requete)) {
    		echo '<option value="'.$result['Id'].'">'.$result['marque'].', '.$result['type'].', '.$result['modele'].'</option>';
            }
    }
    Si j'ai bien compris l'affaire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    bonsoir,

    merci julp, pour ta réponse, ca marche nickel.

    je n'avais pas pensé à utilisé "mysql_num_rows".

    Par contre je ne vois pas la différence entre
    - mysql_fetch_assoc et
    - mysql_fetch_array

    il y a une subtilité entre les 2 mais je ne vois pas pourquoi utiliser l'un plutot que l'autre.

    Merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Comme expliqué dans leur documentation respective mysql_fetch_assoc retourne chaque résultat sous la forme d'un tableau associatif alors que mysql_fetch_array les renvoie, par défaut, sous la forme d'un tableau associatif et d'un tableau numériquement indexé. Le comportement de cette dernière peut être modifié en jouant sur son deuxième paramètre facultatif (si valeur MYSQL_ASSOC, elle se comportera comme mysql_fetch_assoc et avec MYSQL_NUM, elle se comportera comme mysql_fetch_row).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une Fonction SQL qui retourne le résultat d'une requête
    Par kamacho25 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/09/2007, 11h44
  2. [SQL] pagination d'un résultat d'une requête
    Par opeo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/03/2007, 12h25
  3. [SQL] Recherche dans le résultat d'une requête
    Par Ekik dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/03/2007, 11h32
  4. [SQL-VBA] récupérer le résultat d'une requète SQL dans un fichier txt
    Par djidanestribbal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/02/2007, 16h25
  5. Réponses: 19
    Dernier message: 26/01/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo