• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbank-Werte in array ausgeben

stefanmahr.com

Neues Mitglied
Hallo Leute,

ich würde gerne die E-Mail Adressen die in einer DB Gespeichert sind in einem Array ausgeben, dass es so aussieht wenn ich es mit echo anzeigen lasse: EMail1; EMail2; EMail3; .... nur leider hab ich keinen Plan wie ich das umsetze damit es zuverlässig Funktioniert.

Bis jetzt habe ich es damit funktioniert nur dadurch bekomme ich leider keine Ausgebe:

PHP:
    <?php
        mysqli_connect("localhost", "root", "password", "newsletter_demo")or die("Keine Verbindung möglich: " . mysql_error());
       
        $result = mysqli_query("SELECT DISTINCT email FROM abonnenten");
       
        while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { 
            $email_bcc_tmp[] = $row[0];
        }
       
        mysqli_free_result($result);
       
        $email_bcc = implode(",", $email_bcc_tmp);
       
        print_r($email_bcc);
        echo $email_bcc;
    ?>

Hoffe auf Sinnvolle Antworten!

MfG
Stefan Mahr
 
Hallo,

wenn Du mysqli auf diese Weise nutzt, musst Du die Verbindungskennung bei Abfrage eines Ergebnisses mit angeben. Alternativ wäre der objektorientierte Stil möglich, den Du in der offiziellen Dokumentation nachlesen kannst.

PHP:
<?php

    $conn = mysqli_connect("localhost", "root", "password", "newsletter_demo")or die("Keine Verbindung möglich: " . mysql_error());

    $result = mysqli_query($conn, "SELECT DISTINCT email FROM abonnenten");

    while ($row = mysqli_fetch_array($result)) {
        $email_bcc_tmp[] = $row[0];
    }

    mysqli_free_result($result);

    $email_bcc = implode(",", $email_bcc_tmp);

    echo $email_bcc;
?>

Hier noch der objektorientierte Weg:

PHP:
// Verbindung zur Datenbank herstellen
    $mysqli = new mysqli('localhost', 'root', 'password', 'newsletter_demo');

    if ($mysqli->connect_errno) {
        printf("Connect failed: %s\n", $mysqli->connect_error);
        exit();
    }

    // Abfrage durchführen
    $res            = $mysqli->query('SELECT DISTINCT email FROM abonnenten');
    $email_bcc_tmp  = array();
   
    while($row = $res->fetch_array())
    {
        $email_bcc_tmp[] = $row[0];
    }

    $email_bcc = implode(",", $email_bcc_tmp);
    echo $email_bcc;
 
Zuletzt bearbeitet:
Ab php 5.3 hast du übrigens auch die wunderbare Funktion http://www.php.net/manual/de/mysqli-result.fetch-all.php
Damit kann man sich die Schleife zum auslesen spaaren.

Ich würde mir übrigens einen anderen Weg überlegen die E-Mails in die Datenbank einzutragen. Da du "SELECT DISTINCT" schreibst nehme ich an das sich leute mehrfach mit der gleichen E-Mail Addresse anmelden können. Dieses solltest du verhindern.

lg

Ps:Schön das du mysql_free_result verwendest =)
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben