Вставить несколько данных в таблицу базы данных mysql с помощью цикла while

сценарий должен вставлять несколько данных в базу данных но по какой-то причине он вставляет только первые данные. Это аспект моего кода, который вызывает проблему.

$pledge_amount = "400";
$getDonors = mysqli_query($connection, "SELECT * FROM `highck39_earn`.`users` WHERE `tomerge` = '2' AND `role`='0' AND `status` = '0'  AND `username` != '$username' ORDER BY `reward_date` ASC LIMIT 0, 2"); 

    $i=0;
    while($resultObj = mysqli_fetch_assoc($getDonors)){

          $rewardBal = $resultObj['reward_balance'];
          $ind_amt = $pledge_amount/2;

         $do_donation = mysqli_query($connection, "INSERT INTO `highck39_earn`.`donations` (`id`, `transaction_id`, `sender`, `sender_name`, `sender_number`, `sender_momo_number`, `receiver`, `receiver_name`, `receiver_number`, `receiver_momo_number`, `amount`, `date`, `status`) VALUES (NULL, '{$transcode}', '{$username}', '{$fullname}', '{$phone}', '{$momo}', '{$resultObj['username']}', '{$resultObj['fullname']}', '{$resultObj['phone']}', '{$resultObj['momo']}', '{$ind_amt}', '{$pledge_date}', '1')");

          $i++;
          echo $i;
          echo $resultObj['fullname']. ' - '. $ind_amt.'<br>';    
          // if ($cnt % 2 == 0) echo "<br>";


          // $data2 = array("fullname" => $fullname, "receiver"=>$resultObj['fullname']);
            //echo json_encode($data2,JSON_FORCE_OBJECT); 
    }

Что такое $i после завершения цикла?

BlobbyBob 12.03.2018 22:38

Вы можете сделать это с помощью 1 запроса. Посмотрите на синтаксис INSERT INTO ... SELECT, который поддерживает MySQL. Гугл буквально ту часть, которую я выделил в коде.

N.B. 12.03.2018 22:56

@BlobbyBob $ i печатает 1 и 2 на экране

Richard Neaver 12.03.2018 23:22

@RichardNeaver Проверьте возвращаемое значение $do_donaton. mysqli_query() возвращает false в случае ошибки. Вы также можете посмотреть mysqli_num_rows(), который возвращает количество вставленных строк.

BlobbyBob 13.03.2018 11:28
Стоит ли изучать 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 и хотите разрабатывать...
1
4
177
1

Ответы 1

У вас есть какая-либо ошибка sql в вашем журнале при попытке сделать вставку?

Вы можете проверить, правильно ли работает вставка, с помощью чего-то вроде:

if (mysqli_query($connection, "INSERT INTO...") === TRUE) {
    printf("Insert ok");
}

Надеюсь, поможет

Это действительно комментарий, а не ответ. С немного большим количеством повторений, вы сможете оставлять комментарии. На данный момент я добавил для вас комментарий и помечаю этот пост для удаления.

clinomaniac 13.03.2018 00:03

вставка работает, но вставляет только 1 запись вместо нескольких записей. пожалуйста, есть ли другой способ сделать эту работу, может быть, foreach или для lpoop или что-то в этом роде

Richard Neaver 13.03.2018 00:24

Удалось ли добавить в код проверку запроса? Он должен отображаться дважды (так же, как $ i).

Paul 13.03.2018 00:33

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