array php mysql
Bonjour à tous
J'aimerais afficher le résultat de ma requête dans un array et ensuite séparer les données par une virgule.
Merci à toute âme charitable qui m'indiquera le chemin
<?php
$sql = mysql_query("SELECT (pseudo) FROM membres");
while($user = mysql_fetch_array($sql)){
echo $user['pseudo'].'<br />';
}
?>
Hello,
Si j'ai bien compris :
Pour insérer tes valeurs dans l'array
<?php
$array = array();
$sql = mysql_query("SELECT (pseudo) FROM membres");
while($user = mysql_fetch_array($sql)){
array_push($array,$user['pseudo'])
}
?>
Et pour l'affichage :
<?php
$value = "";
foreach($array as $foo){
$value.= $foo.',';
}
$value = substr($value,0,-1);
echo $value;
?>
En espérant avoir pu t'aider :)
Merci, c'est ça, seulement j'ai modifié ton code comme ceci:
<?php
$array = array();
$sql = mysql_query("SELECT (pseudo) FROM membres");
while($user = mysql_fetch_array($sql)){
array_push($array,$user['pseudo']);
}
$userOnLine = implode(", ", $array);
echo $userOnLine;
?>
Ce qui évite d'avoir une virgule après le dernier membre
mais sinon c'est ce que je souhaitais faire
Re et en ajoutant cette fonction
<?php
function format_liste($tableau) {
$tableau_tmp = $tableau;
$dernier_element = array_pop($tableau_tmp);
if ($dernier_element === null) {
return '';
} elseif (!count($tableau_tmp)) {
return $dernier_element;
} else {
return implode(', ', $tableau_tmp) . ' et ' . $dernier_element;
}
}
echo format_liste($array);
?>
La dernière virgule est remplacé par 'et'.
La fonction vient de ce site :
http://www.phpsources.org/scripts510-PHP.htm
Quel est l'interet de pusher dans un tableau pour ensuite l'implode ?
Utilise directement une concaténation en construisant ta string à chaque tour de boucle.
Désolé mais je ne comprends pas ce que tu veux dire. Je ne suis pas fort en php
(La Globule) J'utilise cette technique pour éviter les erreurs de syntaxes. Surtout pour la construction d'une chaîne ayant des séparateurs. Ça évite aussi un test dans la boucle.
Et je n'aime pas l'opérateur de concaténation de chaînes, pour des raisons de lisibilité et de performances.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Personnellement, je ne teste rien dans ma boucle, je substr mon séparateur inséré en trop après la boucle.
Question perf, j'avoue ne jamais avoir testé.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: