Liste PHP

Résolu

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.

3 réponses

  1. Encore une fois, un grand merci, c'est parfait !

    Merci beaucoup.

    0
    1. 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'];
      0
    2. Modérateur

      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...


      0