PHP foreach echo выводит «символы» как значение

Я извлекал данные из MySQL динамически, используя раскрывающееся меню через Ajax, что было успешным, но когда я повторяю значения массива, вместо того, чтобы давать мне список электронных писем, он показывал только символы.

Взгляните на изображение ниже: PHP foreach echo выводит «символы» как значение

Из списка рассылки это символы, которые были выведены эхом.

вот мой код php

if (isset($_POST["confirm_no"])){

    $d = $_POST['confirm_no'];
    $query = mysqli_query($mysqli, "select * from jobseeker WHERE confirm_no LIKE  '$d%'");

    //Display  list
    if (mysqli_num_rows($query) > 0){
          $row = mysqli_fetch_array($query);
            foreach ($row as $r) {
            $emailArr[] = $r["mails"];
        }
         $emails = implode(";", $emailArr);

        echo $emails;

    }else{
        echo 'No email for this selection.';
    }
}

И jQuery

$(document).ready(function(){ 

$('#smode').change(function(){
var confirm_no = $(this).val();
$.ajax({
   type:'POST',
  data:"confirm_no = "+confirm_no,
   url:'get_email.php',
   success:function(data){
       $('#emaillist').val(data);
   } 

});
});
});

Почему он повторяет эти символы?

mysqli_fetch_array выбирает массив с нулевым индексом, а не ассоциативный.
u_mulder 14.06.2018 14:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы неправильно загружаете данные, вы выбираете только одну строку (вызов mysqli_fetch_array()

$row = mysqli_fetch_array($query);
foreach ($row as $r) {
    $emailArr[] = $r["mails"];
}

Можно было бы лучше написать как

while( $row = mysqli_fetch_assoc($query)) {
    $emailArr[] = $row["mails"];
}

Или же...

$emailArr = mysqli_fetch_all($query, MYSQLI_ASSOC);
$emailArr = array_column($emailArr, "mails");
Ответ принят как подходящий

Перестройте свой код как:

//Display  list
if (mysqli_num_rows($query) > 0){
    // You have many results - fetch them all iteratively
    // use `fetch_assoc` to have ability to use `mails`
    while ($row = mysqli_fetch_assoc($query)) {
        $emailArr[] = $row["mails"];
    }
    $emails = implode(";", $emailArr);

    echo $emails;
}else{
    echo 'No email for this selection.';
}

Спасибо, ребята, за вашу помощь.

Fagbemi Ayodele 14.06.2018 14:45

Другие вопросы по теме