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 :

resultat mysql dans une seul variable (sorte de regroupement de plusieur resultat) :: [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut resultat mysql dans une seul variable (sorte de regroupement de plusieur resultat) ::
    nb : j'explique le probleme plus simplement ici
    http://www.developpez.net/forums/d68...t/#post3988954
    plus bas dans la page



    ah je n'y arrive pas !!!!!!

    il doit y avoir une fonction super simple

    mon problème est basic

    une requete => plusieur resultat => grouper ces resultats dans une variable => imprimer la variable

    pouvez vous m'aider

    mes en me donnant l'exemple exacte svp

    je vous mets le code

    je veux faire un echo globale de la requete, hors du while

    j'ai ça avec le
    echo $lemot;
    qui est répété par le
    for ($i=0; $i<$nbdegroupe+1; $i++)

    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
    16
    17
    18
    19
    20
    21
     
     
     
    for ($i=0; $i<$nbdegroupe+1; $i++) {
     
    $reponse = mysql_query("SELECT * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 1"); // Requête SQL
     
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    $lemot = $donnees['mots'];
    $lid = $donnees['id'];
    $legroupe = $donnees['groupe'];
     
    $lemot = stripslashes($lemot);
    $lemot = utf8_decode($lemot);
    $lemot = "$lemot ";
    echo $lemot;
    }
    }
    ?>

    et moi je veux regrouper le
    echo $lemot,
    x i
    en
    echo $globalelemot


    quelque chose comme ça


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
     
    for ($i=0; $i<$nbdegroupe+1; $i++) {
     
    $reponse = mysql_query("SELECT * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 1"); // Requête SQL
     
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
    $lemot = $donnees['mots'];
    $lid = $donnees['id'];
    $legroupe = $donnees['groupe'];
     
    $lemot = stripslashes($lemot);
    $lemot = utf8_decode($lemot);
    $lemot = "$lemot ";
     
    }
    }
     
     
    echo $globalelemot;
    ?>

    faut t'il modifier la requete
    mysql_fetch_array

    par un
    mysql_fetch_array_super_fonction_de_groupement_simplicime

    ou mettre
    $lemot
    dans un array
    et printer le array ??????



    je suis debutant sur les arrays ou les requetes
    quelqu'un a la solution
    ça doit être simple


    merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si j'ai bien compris tu veux assembler tous tes mots ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $lemot = '';
    for ($i=0; $i<$nbdegroupe+1; $i++) {
     
    $reponse = mysql_query("SELECT * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 1"); // Requête SQL
     
    $donnees = mysql_fetch_array($reponse)
    $lemot .= ' ' . utf8_decode(stripslashes($donnees['mots']));
    $lid = $donnees['id'];
    $legroupe = $donnees['groupe'];
    }
    echo $lemot;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut
    En fait je veux juste faire un echo de la globalité de la requete hors du while et donc recupérer toutes les valeurs de ma variable



    je te donne un exemple avec un LIMIT 100

    là je fais un echo des mots avec le while et le limit 100

    et


    echo $lemot;

    se fait dans le while



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $reponse = mysql_query("SELECT * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 100"); // Requête SQL
    
    // On fait une boucle pour lister tout ce que contient la table :
    
    while ($donnees = mysql_fetch_array($reponse) )
    {
    $lemot = $donnees['mots'];
    
    echo $lemot;
    
    }

    et moi je veux


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $reponse = mysql_query("SELECT * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 100"); // Requête SQL
    
    // On fait une boucle pour lister tout ce que contient la table :
    
    while ($donnees = mysql_fetch_array($reponse) )
    {
    $lemot = $donnees['mots'];
    
    // le super truc a ajouter pour lister tout les $lemot 
    
    }
    
    
    echo $LISTETOTALE_de_lemot;

  4. #4
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    si ton but est d´inserer le resultat d´une requete dans mysql,
    alors tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $reponse1 = mysql_query("Insert into nom_de_la_table(nom1) select nom1 FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 1"); // Requête SQL
    maintenant si tu veux afficher le resultat de la requete , tu peux faire comme ceci :
    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
    16
    17
    18
     
    $responseglobal1 = ' ';
     
    $responseglobal2 = array();
     
    $reponse2 = mysql_query(" select * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 100"); // Requête SQL
     
    while ($donnees = mysql_fetch_array($reponse2) )
    {
       $responseglobal1 .= $donnees['mots'].";  ";
     
       $responseglobal2[] = $donnees['mots'];
    }
     
    //et pour affichicher il suffit de faire :
    echo  $responseglobal1."<br>";
    //ou
    print_r($responseglobal2);
    j´espere que cela t´aidera.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut
    merci pour ta réponse
    mais dans l'exemple 1 et 2
    pour les affichage il me met

    ;

    et


    Array ( [0] => )



    mais pas les données

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut
    c'est surtout cette réponse qui m'interesse


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $responseglobal1 = ' ';
     
    $reponse2 = mysql_query(" select * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 100"); // Requête SQL
     
    while ($donnees = mysql_fetch_array($reponse2) )
    {
       $responseglobal1 .= $donnees['mots'].";  ";
     
    }
     
    //et pour affichicher il suffit de faire :
    echo  $responseglobal1."<br>";

    est ce que le fait de definir vide $responseglobal1
    et d'ajouter des points dans le while $responseglobal1 .= $donnees['mots']."; ";
    et dans le echo
    echo $responseglobal1."<br>";

    suffisent pour fusionner plusieurs résultats dans une variable ?

  7. #7
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    pas du tout, j´ai mis cela pour qu´il me serve de delimitateur( j´aurais pu choisir autre chose, encore faudrait- il que je sache a peu pres ce que j´attend comme resultat: s´agit t-il d´un alpha numerique, ou autre caractere ), et le vide de l´initialisation depend en fait de ce que je veux faire avec ma chaine apres l´avoir construit.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut
    c'est compliqué punaise

    par exemple je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $reponse = mysql_query("SELECT * FROM gits ORDER BY rand() LIMIT 2");
    while ($donnees = mysql_fetch_array($reponse))
    {
    $lemot = $donnees['mots'];
    echo "$lemot ";
    }
    m'affichera le mot 1 et le mot 2
    j'ai alors 2 valeurs pour le $lemot car j'avais LIMIT 2

    comment faire pour avoir ces deux valeur, non pas dans un array mais dans une variable

    par exemple $lemotlemot


    je croyais que c'était plus simple !

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 6
    Par défaut
    alors vous pouvez utiliser la fonction array_push ()

    pour mettre tes donneés dans une array et les utiliser sur value[] -> tous les données ou 1 par 1 value[1]

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est ce que je t'avais mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $reponse = mysql_query("SELECT * FROM gits ORDER BY rand() LIMIT 2");
    while ($donnees = mysql_fetch_array($reponse))
    {
    $lemot .= $donnees['mots'];
     
    }
    echo $lemot;
    J'avais retiré le while car avec un LIMIT 1, c'etait inutile.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut
    je dois être épuisé
    25 heures de php en 2 jours
    je vais juste oublié ça pendant quelque jours
    merci pour ton aide en tout cas

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Si j'ai bien compris tu veux assembler tous tes mots ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $lemot = '';
    for ($i=0; $i<$nbdegroupe+1; $i++) {
     
    $reponse = mysql_query("SELECT * FROM gits WHERE roman=$roman AND groupe=$i ORDER BY rand() LIMIT 1"); // Requête SQL
     
    $donnees = mysql_fetch_array($reponse)
    $lemot .= ' ' . utf8_decode(stripslashes($donnees['mots']));
    $lid = $donnees['id'];
    $legroupe = $donnees['groupe'];
    }
    echo $lemot;



    eureka

    je suis content
    étant autodidacte en php je ne connais pas les fonctions de base

    il suffit d'ajouter un . devant les =
    exemple

    $reza .= "hello";
    $reza .= " world !";
    echo $reza
    // affichera : hello word :


    c'est chouette
    je suis heureux !

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    En fait c'est une écriture raccourcie :
    <=>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/02/2011, 14h33
  2. Réponses: 9
    Dernier message: 10/02/2008, 17h14
  3. Réponses: 4
    Dernier message: 15/01/2008, 10h43
  4. Réponses: 6
    Dernier message: 27/09/2006, 20h27
  5. Resultat requete dans une seule colonne
    Par mathieu--g dans le forum Sybase
    Réponses: 2
    Dernier message: 08/07/2003, 13h42

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