Liste PHP
RésoluSOUMIE Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je voudrais savoir comment m'y prendre pour faire plus simple. En effet, j'ai environ 300 mails et j'imagine qu'il y a beaucoup plus simple que de faire ce que je fais trois cents fois.
<?php
$pre_classement_mail = "SELECT mail FROM membre";
$connect_classement_mail = $connect->query($pre_classement_mail);
while ($classement_mail = mysqli_fetch_array($connect_classement_mail))
{
$mail[] = $classement_mail['mail'];
}
$liste_mail = $mail[0].','.$mail[1].','.$mail[2].','.$mail[3].','.$mail[4].','.$mail[5].','.$mail[6].','.$mail[7];
?>
Je vous en remercie d'avance.
- Liste PHP
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
- Site dangereux liste - Guide
3 réponses
Bonjour,
Il y aurait plusieurs choses à améliorer dans ton code.
Donc, déjà, au lieu de faire une boucle tel que tu le fais pour juste reconstruire un array ensuite, ill existe la méthode fetchAll()
https://www.php.net/manual/fr/mysqli-result.fetch-all.php
Ensuite, pour fusionner un array, tu aurais pu faire une boucle qui fasse la concaténation au lieu de l'écrire à la main ( surtout que cette liste est sûrement vouée à évoluer.. puisqu'elle provient d'une base de donnée.
Il existe aussi des fonctions pour manipuler les array, en utilisant, par exemple, la fonction implode
par exemple :
// Use implode() function to join // comma in the array $List = implode(', ', $Array);
Et puis encore plus simple ... directement dans ta requête, faire un GROUP_CONCAT
https://sql.sh/fonctions/group_concat
ainsi, la concaténation sera déjà faite... et là .. plus besoin de boucle... ni de fusionner un array...
Merci beaucoup jordane45 !! Je ne connaissais pas du tout GROUP_CONCAT. C'est top comme fonction sql. Cependant, j'ai un nouveau problème. Je n'arrive pas à extraire plus de 1024 caractères. Je ne vois pas du tout pourquoi ?
Si tu as une idée je suis preneur.
$pre_classement_mail = "SELECT mail, GROUP_CONCAT(mail) as liste FROM praticien";
$connect_classement_mail = $connect->query($pre_classement_mail);
$classement_mail = mysqli_fetch_array($connect_classement_mail);
$mail_liste = $classement_mail['liste'];