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 :

Récup requête SQL dans un array


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut Récup requête SQL dans un array
    salutatous,

    j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = "SELECT couriel FROM ma_table WHERE id_bis=" . $id . "";
    $sql_bis = mysql_query($sql);
    echo mysql_error();
     
    while ( list ( $couriel ) = mysql_fetch_array($sql_bis)) {
     
    	if ($couriel != '') {
    		echo $couriel . ', ';
     
    	} else {
    		echo 'Aucun participant pour le moment...';
    	}
    }
    j'arrive bien à récupérer et à afficher le contenu de $courriel
    MAIS
    si $courriel est vide et bien mon message "Aucun participant pour le moment..." ne s'affiche pas !!!

    je m'aperçois bien que ma condition "if()... else..." disfonctionne !

    je souhaiterai donc appliquer un sizeof()... sur l'array mais mon problème est que je n'arrive à récupérer le résultat de ma requête justement dans un array !

    si vous avez une piste...

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    enlève le list et $couriel sera un array

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    Salut,

    si j'écris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
     
    if (sizeof($couriel) != 0) {
    echo $couriel . ', ';
     
    } else {
    echo 'Aucun participant pour le moment...';
    }
    }
    le 1er echo de ma condition m'affiche ceci :
    Array, Array, Array,

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    oui normale si tu fais un echo sur un array il va t'afficher Array,
    fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $couriel['couriel'], ', ';
    mais ta methode n'est pas bonne, qu'est ce que tu veux faire enfaite ?
    si tu veux juste savoir si t'as des email dans ta base compte juste le nombre de résultat direct dans t'as requete, pas besoin de while ni rien

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    ah là ça m'affiche bien le contenu de $courriel

    en fait ce que je veux faire, c'est une condition qui me permet de savoir si le contenu de mon array $courriel est vide ou rempli

    s'il est rempli, j'affiche son contenu... et s'il est vide j'affiche un message "Aucun participant pour le moment..."

    et ce que je n'arrive pas à faire, c'est justement de : comment savoir si mon array est vide ou plein !

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par nicomax34 Voir le message
    ah là ça m'affiche bien le contenu de $courriel

    en fait ce que je veux faire, c'est une condition qui me permet de savoir si le contenu de mon array $courriel est vide ou rempli

    s'il est rempli, j'affiche son contenu... et s'il est vide j'affiche un message "Aucun participant pour le moment..."

    et ce que je n'arrive pas à faire, c'est justement de : comment savoir si mon array est vide ou plein !
    ton array correspond aux colonnes de chaque ligne de résultats de la requete, et pas a tout les resultats, donc la en gros a chaque fois qui va tomber sur une ligne qui a $couriel vide, il va marquer l'erreur

    ce que tu veux savoir c'est si ta base est vide d'email ou pas ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    oui je veux savoir si ya des emails en base... et si oui ou non... j'affiche le ou les emails ou bien mon message

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par nicomax34 Voir le message
    oui je veux savoir si ya des emails en base... et si oui ou non... j'affiche le ou les emails ou bien mon message
    tu dois faire un COUNT en SQL, requerer et résultat (pas besion de while)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    OUF ! j'ai trouvé, voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $sql = "SELECT couriel FROM ma_table WHERE id_bis=" . $id . "";
    $sql_bis = mysql_query($sql);
    echo mysql_error();
     
    $nb_lignes = mysql_num_rows($sql_bis);
     
    if ($nb_lignes != 0) {
     
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    echo $couriel['participant_couriel'], ', ';
    }
     
    } else {
    echo 'Aucun participant pour le moment...';
    }

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    une dernière question :

    mon affichage me donne :
    courriel_01@courriel.fr, courriel_02@courriel.fr, courriel_03@courriel.fr,

    comment faire pour supprimer la dernière virgule au niveau de l'affichage ?


    merci en tout cas pour m'avoir mis sur la voie

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pareil toujours en une seul requete et toujours pas besion de while, en SQL avec GROUP_CONCAT

  12. #12
    Membre confirmé Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Par défaut
    Citation Envoyé par nicomax34 Voir le message
    une dernière question :

    mon affichage me donne :
    courriel_01@courriel.fr, courriel_02@courriel.fr, courriel_03@courriel.fr,

    comment faire pour supprimer la dernière virgule au niveau de l'affichage ?
    Salut,
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    echo $couriel['participant_couriel'], ', ';
    }
    je ferais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $res='';
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    $res.= $couriel['participant_couriel'], ', ';
    }
    echo substr($res,0, -1);

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Paniez Voir le message
    Salut,
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    echo $couriel['participant_couriel'], ', ';
    }
    je ferais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $res='';
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    $res.= $couriel['participant_couriel'], ', ';
    }
    echo substr($res,0, -1);
    c'est pas terrible..., GROUP_CONCAT le fait direct, sinon faire un implode

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    entre temps et grâce aux conseils de stealth35, mon code a évolué.

    j'ai remplacé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    echo $couriel['participant_couriel'], ', ';
    }
    par cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($data = mysql_fetch_assoc($sql_bis)) {
    $couriel[] = $data['participant_couriel'];
    echo $data['participant_couriel'] . ', ';
    }
    et donc si je remplace le code juste au-dessus par ta méthode, Paniez, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $res='';
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    $couriel[] = $data['participant_couriel'];
    $res.= $data['participant_couriel'], ', ';
    }
    echo substr($res,0, -1);
    ça m'affiche cette erreur :
    Parse error: syntax error, unexpected ',' in /blablabla/mon_fichier.php

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    utilise implode

  16. #16
    Membre confirmé Avatar de Paniez
    Homme Profil pro
    Communication & Webservices
    Inscrit en
    Janvier 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Communication & Webservices
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 186
    Par défaut
    Citation Envoyé par nicomax34 Voir le message
    et donc si je remplace le code juste au-dessus par ta méthode, Paniez, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $res='';
    while ( $couriel = mysql_fetch_array($sql_bis) ) {
    $couriel[] = $data['participant_couriel'];
    $res.= $data['participant_couriel'], ', ';
    }
    echo substr($res,0, -1);
    ça m'affiche cette erreur :
    Parse error: syntax error, unexpected ',' in /blablabla/mon_fichier.php
    Re,
    Je n'avais pas fait attention, mais il y a une virgule à la place du point :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $res.= $data['participant_couriel']. ', ';

Discussions similaires

  1. Projet VB v6 : utilisation de requête SQL dans mon code
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/10/2005, 15h02
  2. [MySQL] Problème de requêtes SQL dans un script
    Par Nefret dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 08/09/2005, 15h08
  3. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07
  4. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 15h38
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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