@alihang

Почему в бд записываются нули?

Здравствуйте, понимаю, что вопрос нубский, но я пока изучаю php и возникла такая ситуация.
if ($get_users != null) {

    //Получаем id всех участников группы
    $r = $get_users ['response'] ['count'];
    //Циклом запписываем все полученные id в базу данных
    for ($i=0; $i<= $r; $i++) {
        $id = $get_users['response'] ['items'] [$i] ['id'];
        $q = mysqli_query($db_connect, "INSERT INTO `users` (`id`) VALUES ('$id')");

        //Получаем именна и фамилии участников
        $first_name = $get_users['response']['items'][$i]['first_name'];
        $last_name = $get_users['response']['items'][$i]['last_name'];

        //Проверяем на пустоту переменные с именами и фамилиями
        if (!empty($first_name) && !empty($last_name)) {
            //Записываем имена и фамилии в базу
            $query = mysqli_query($db_connect, "INSERT INTO `users` (`names`) VALUES ('$first_name $last_name')");
        }
    }
}

Данным кодом, я пытаюсь получить данные подписчиков сообщества Вк. Все необходимые мне данные (имена, фамилии и id) я получаю как мне нужно. Дальше мне необходимо записать их в бд и они записываются, но в таком формате: 5acdd528e2820838411243.png
Т.е там через строку вставляется ноль. В принципе мне это не мешает, но при получении данных из базы и вывода их в html таблицу появляются пустые строки. Как я могу от них избавиться?
P.S удалять нули из таблицы пытался - получилось как-то криво и все id заменялись на нули
  • Вопрос задан
  • 218 просмотров
Решения вопроса 2
@vism
у вас 2 инсерта в коде.
один вставляет ИД, другой имена. Все правильно в базе. Ровно по вашему алгоритму)
Ответ написан
А зачем вы пихаете в базу строку с id
$q = mysqli_query($db_connect, "INSERT INTO `users` (`id`) VALUES ('$id')");
и пустыми именем и фамилией, а только потом строку с пустым id
$query = mysqli_query($db_connect, "INSERT INTO `users` (`names`) VALUES ('$first_name $last_name')");
, но с именем и фамилией??
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Правильнее было бы выбросить этот ужас, собрать все в кучку и вставить одним запросом:
INSERT INTO tbl_name
    (a,b,c)
VALUES
    (1,2,3),
    (4,5,6),
    (7,8,9);
Ответ написан
@Vlad_fox
проблема в Вашем коде в том, что в выполняете 2 операции вставки :
- mysqli_query($db_connect, "INSERT INTO `users` (`id`) VALUES ('$id')");
вставляет запись с заполненным полем id, и пустым полем имени , поскольку значение для вставки в поле не указано

- предпоследняя строка кода вставляет в таблицу запись с неуказанным значение поля id (по умолчанию заполняется 0) и занчение имени.

Вам надо за одну операцию вставки записывать значения обеих полей.
ту строку, где первая вставка записи с ид закоментируйте или удалите,
а предпоследнюю перепишите примерно так:
$query = mysqli_query($db_connect, "INSERT INTO `users` (`id`, `names`) VALUES ('$id', '$first_name $last_name')");
        }
Ответ написан
Ваш ответ на вопрос

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

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