Lister les résultats d'une requête sql dans une variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lister les résultats d'une requête sql dans une variable

Re: Lister les résultats d'une requête sql dans une variable

par AB » 29 sept. 2010, 22:32

J'aurais fait comme zeus parce qu'à chaque fois qu'on peut faire des tableaux, étant donné qu'il y a des milliards (enfin des milliards par rapport à javascript) de fonctions prévues pour les tableaux en php, c'est ensuite très facile à manipuler.

Par exemple, il se pourrait qu'une ligne ne retourne pas de mail auquel cas tu auras deux ;; successifs dans ta chaine. Pour supprimer des éléments vide d'un tableau il suffit d'employer array_filter donc il te suffit de rajouter cette fonction au code de zeus
// Initialisation du tableau de destinataire
$to = array();
$requete = mysql_query("SELECT mail from basemails");
while($data=mysql_fetch_array($requete)){
    $to[] = $data[0];
}
//Enlève les éléments vides
$to = array_filter($to);

// Joints les différents éléments du tableau en utilisant ';' comme glue.
echo implode(';', $to);
Mais tu pourrais choisir aussi de trier les mails par ordre alphabétique auquel cas tu pourrais utiliser natsort :
//Enlève les éléments vides
$to = array_filter($to);
//Tri par ordre alphabétique naturel
natsort($to);
// Joints les différents éléments du tableau en utilisant ';' comme glue.
echo implode(';', $to);
Enfin bon c'est pour l'exemple car d'un autre côté tu pourrais faire ces tris également dans ta requête.

Re: Lister les résultats d'une requête sql dans une variable

par Math06 » 29 sept. 2010, 21:57

Parfait merci beaucoup pour votre aide !

Mathieu

Re: Lister les résultats d'une requête sql dans une variable

par zeus » 26 sept. 2010, 09:09

Et hop, encore un niveau de lisibilité :
// Initialisation du tableau de destinataire
$to = array();
$requete = mysql_query("SELECT mail from basemails");
while($data=mysql_fetch_array($requete)){
    $to[] = $data[0];
}
// Joints les différents éléments du tableau en utilisant ';' comme glue.
echo implode(';', $to);

Re: Lister les résultats d'une requête sql dans une variable

par datesta » 26 sept. 2010, 07:36

une version sans if
$sep = $to = "";
$requete = mysql_query("SELECT mail from basemails");
while($data=mysql_fetch_array($requete)){
    $to .= $sep.$data[0];
    $sep = ";";
}
echo $to;

Re: Lister les résultats d'une requête sql dans une variable

par xTG » 25 sept. 2010, 20:08

C'est une question de concaténation de variables.
$to = "";
$requete = mysql_query("SELECT mail from basemails");
while($data=mysql_fetch_array($requete))
{
    if( !empty($to) )
        $to .= ";";
    $to .= "$data[0]";
}
echo $to;

Re: Lister les résultats d'une requête sql dans une variable

par Math06 » 25 sept. 2010, 19:49

Oui je suis ok avec cette idée, mais là ça ne fait que m'afficher côte à côte mes différentes adresses email, je ne vois pas comment après les mettre toutes ensemble dans un $to ...

Mathieu

Re: Lister les résultats d'une requête sql dans une variable

par stealth35 » 25 sept. 2010, 17:21

faut faire une boucle pour les récupérer toutes
$requete = mysql_query("SELECT mail from basemails");
while($data=mysql_fetch_array($requete))
{
    echo"$data[0]";
}

Re: Lister les résultats d'une requête sql dans une variable

par Math06 » 25 sept. 2010, 17:14

Petite précision : l'idée étant que ma variable soit $to, il faudrait que les adresses soient séparées par des ";" .

Merci
Mathieu

Lister les résultats d'une requête sql dans une variable

par Math06 » 25 sept. 2010, 17:13

Bonjour,

Je possède un site en PHP et parmi mes pages l'une d'entre-elle permet au visiteur de remplir un formulaire de contact. Je souhaiterais qu'à l'envoi de ce formulaire, une liste d'adresses mails déjà présentes dans ma base de données serve de destinataire. J'ai donc essayé de concaténer mes adresses dans une variable $to en vain ... J'ai tenté plusieurs manips à travers des requetes sql + mysql_fetch ... sans succès.

Au mieux, j'arrive à obtenir la première adresse email en faisant ça :

Code : Tout sélectionner

$requete = mysql_query("SELECT mail from basemails"); $data=mysql_fetch_array($requete); echo"$data[0]";

Est-ce qu'une âme charitable pourrait m'apporter ses lumières ?

Merci d'avance !
Mathieu