Вставить и извлечь несколько писем в одном столбце в MYSQL с помощью PHP CodeIgniter? - PullRequest
0 голосов
/ 10 мая 2018

Я новичок в MySQL DB, Я пытаюсь вставить несколько писем, разделенных точками с запятой. Я хочу вставить их в одну ячейку ( Хотите сохранить массив писем в одну ячейку ). Так что все вставляются против одной записи. Является ли это возможным? Если так, пожалуйста, помогите мне. В настоящее время я передаю значение в текстовое поле.

Так что, когда я получаю их, я могу легко поместить их в новую строку. И можете отправлять электронные письма непосредственно на определенный почтовый идентификатор.

Текущий сценарий:

| User ID | User Name | User Email |
----------------------------------------
| 1       | Test 1    | test1@test.com;test1@admin.com;admin1@test.com
----------------------------------------
| 2       | Test 2    | test2@test.com;test2@admin.com;admin2@test.com
----------------------------------------
| 3       | Test 3    | test3@test.com;test3@admin.com;admin3@test.com
----------------------------------------

Требуемый сценарий:

| User ID | User Name | User Email |
----------------------------------------
| 1       | Test 1    | test1@test.com
                        test1@admin.com
                        admin1@test.com
----------------------------------------
| 2       | Test 2    | test2@test.com
                        test2@admin.com
                        admin2@test.com
----------------------------------------
| 3       | Test 3    | test3@test.com
                        test3@admin.com
                        admin3@test.com
----------------------------------------

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

CodeIgniter возвращает user_data модель формы массива

Array
(
    [0] => Array
        (
            [user_id] => 1
            [user_name] => Test 1
            [user_mail] => test3@test.com;test3@admin.com;admin3@test.com
        )

    [1] => Array
        (
            [user_id] => 2
            [user_name] => Test 2
            [user_mail] => test3@test.com;test3@admin.com;admin3@test.com
        )

    [2] => Array
        (
            [user_id] => 1
            [user_name] => Test 2
            [user_mail] => test3@test.com;test3@admin.com;admin3@test.com
        )

)

Передайте этот массив в ваше представление.

$data['user_det'] = $user_data;
$this->load->view('your_view',$data);

Код представления:

<table border="1">
    <thead>
        <tr>
            <th>User id</th>
            <th>User Name</th>
            <th>Emails</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach($user_det as $val){
        $email = explode(';',$val['user_mail']);
        ?>
        <tr>
            <td><?php echo $val['user_id'] ?></td>
            <td><?php echo $val['user_name'] ?></td>

            <td>    
            <?php  foreach($email as $val2){ ?>     
                <a href="mailto:<?php echo $val2; ?>"><?php echo $val2; ?></a><br>
            <?php } ?>
            </td>
        </tr>
        <?php } ?>
    </tbody>
</table>

Out Out:

enter image description here

0 голосов
/ 10 мая 2018

Я добавил простое извлечение почты из базы данных и отправил несколько, пожалуйста, отметьте это как можно скорее.

       <!-- language: lang-php -->
        <?php 
        // Database configuration
        $dbHost     = "localhost";
        $dbUsername = "root";
        $dbPassword = "";
        $dbName     = "email_database";

        // Create database connection
        $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);

        // Check connection
        if ($db->connect_error) {
            die("Connection failed: " . $db->connect_error);
        }
        // connects to MySQL database 
        // insert record something like that 
        if(isset($_POST['email_id'])
        {
         $email_ids = $_POST['email_id'];
        }
        $r=implode(",",$email_ids);
        $insert=mysql_query("insert into email_database(email_id) value 
        ('$r')")
        // send email 20 at a time 
        $query = "SELECT email_id FROM email_database"; 
        // echo $query;die;
        $result = mysqli_query($db,$query);
        foreach($result as $email)
        {
            $email_array = implode("," ,$email);
            echo $to      =  rtrim($email_array,",");
            $subject = 'the subject';
            $message = 'hello';
            $headers = 'From: webmaster@example.com' . "\r\n" .
           'Reply-To: webmaster@example.com' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
            mail($to, $subject, $message, $headers);
          }
          ?>
...