@Lion97icvc

Как вывести число записей добавленных в БД через PHP?

Добрый день, столкнулась с такой проблемой. Есть массив из данных, который я записываю в БД, после добавления данных в БД мне нужно вывести количество записей добавленных в таблицу. Поискав на просторах Интернета нашла функцию mysqli_num_rows (), но она не подходит, так как работает только с select. Далее нашла функцию mysqli_affected_rows(), но опять же она некорректно работает, так как запись в таблицы я делаю при помощи цикла foreach и функция мне выводит "количество записей 1". А как их всего подсчитать не понимаю. Помогите, пожалуйста.
Массив:
[
  {
    "postId": 1,
    "id": 1,
    "name": "laborum",
    "email": "Elise",
    "body": "laudan"
  },
  {
    "postId": 1,
    "id": 2,
    "name": "earum",
    "email": "Jayne",
    "body": "reiciendis et"
  },
  {
    "postId": 1,
    "id": 3,
    "name": "animi",
    "email": "Nikit",
    "body": "deleniti ratione"
  },
  {
    "postId": 1,
    "id": 4,
    "name": "sit",
    "email": "Lew",
    "body": "ut occaecati"
  }
]


PHP:
<?php
    $servername = "localhost"; 
    $database = "base";
    $username = "rname";
    $password = "1111"; 
    $conn = mysqli_connect($servername, $username, $password, $database); 
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error()); 
    }
    echo "Connected successfully"; //иначе вывести сообщение, что все хорошо
    $comments = 'массив'; //записываем путь к БД
    $comJson = file_get_contents("$comments"); //забираем файл
    $comArr = json_decode($comJson,true); //декодируем в массив
    foreach($comArr as $key => $value) {
        $postId = $value['postId'];
        $id = $value['id'];
        $name = $value['name'];
        $email = $value['email'];
        $body = $value['body'];
        // заносим в БД
        $comSql = "INSERT INTO `comments` (`postId`, `id`, `name`, `email`, `body`)
                    VALUES ('$postId', '$id ', '$name','$email','$body')";
        mysqli_query($conn, $comSql);
    }
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
С одной стороны мы все когда-то учились и делали глупости.
С другой - ну очень тяжело поверить, что человек, учивший в школе математику, не в состоянии справиться с задачей "посчитать повторяющиеся события".
Вот вы же сами говорите, что есть цикл
Какая проблема завести переменную, и прибавлять к ней для начала хотя бы единичку внутри цикла, а потом вывести получившийся результат?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
qant
@qant
programer
$total_inserted = 0;

foreach ($comArr as $key => $value) {
    $postId = $value['postId'];
    $id = $value['id'];
    $name = $value['name'];
    $email = $value['email'];
    $body = $value['body'];
    // заносим в БД
    $comSql = "INSERT INTO `comments` (`postId`, `id`, `name`, `email`, `body`)
                    VALUES ('$postId', '$id ', '$name','$email','$body')";
    if (mysqli_query($conn, $comSql)) {
        $total_inserted++;
    }
}

echo 'Всего добавлено:' . $total_inserted;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы