За последние 24 часа нас посетили 23763 программиста и 1716 роботов. Сейчас ищут 1739 программистов ...

Автоматически, по очереди проверить всех пользователей из БД

Тема в разделе "PHP и базы данных", создана пользователем fromdns, 28 мар 2018.

  1. fromdns

    fromdns Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    6
    Симпатии:
    0
    Имеется программа которая отдает данные(колличество книг на руках) в формате JSON
    Так же есть БД пользователей.

    Дамп БД: http://file.cbsuzr.ru/lib.zip

    Структура БД: lib
    таблица1: user
    Столбцы: userid //Отсюда берем имя пользователя и вставляем в $username

    таблица2: uicheck // Если пользователь соответствует определенному критерию, то отправляем его в эту таблицу.
    Столбцы: userid
    book

    Если в коде в ручную прописать в $username имя пользователя, то всё выполняется как надо, но как сделать, чтобы при запуске нижеуказанного кода, скрипт сам брал из БД имя пользователя (lib\user\userid) и вставлял его в ($username), после того как определится количество книг на руках и отработает функция "если больше 5\то отправить в БД", далее скрипт должен перейти к следующему пользователю и так проверить всех из таблицы (user\userid). (То что выделено жирным - это то, что не пойму как реализовать.)

    PHP владею на уровне - могу собрать что угодно, но из кусков примеров... :)
    Вобщем я зашел в тупик... Ибо перерыл много сайтов, но подходящего решения в каком либо из примеров так и не нашел.

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

    PHP:
    1. <?php
    2. $db['host']='localhost';
    3. $db['user']='root';
    4. $db['pass']='';
    5. $db['db']='lib';
    6. $conn=@mysql_connect($db['host'],$db['user'],$db['pass']) or die("Ошибка БД");
    7. $db=@mysql_select_db($db['db']) or die("Ошибка БД");
    8.   $userid = "$username";
    9.   $data = file_get_contents("http://localhost/json/". $userid);
    10.   $json = json_decode($data);
    11.   $x = $json->{'book'};
    12.  
    13. if ($x > 5) {
    14. mysql_query("INSERT INTO uicheck (userid,book) VALUES ('".$userid."','".$x."')");  
    15. }
    16. ?>
     
  2. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
    @fromdns, какова структура таблицы user?
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. SELECT * FROM users
    2. foreach($users as $user) {
    3.     $userid = $user->userid
    4.     ....
    5. }
    2k18 ну не используйте...
     
  4. fromdns

    fromdns Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    6
    Симпатии:
    0
    В таблице user столбец userid
     
  5. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    774
    Симпатии:
    65
    @fromdns и он содержит только ид польззователей? а в какой тогда таблице содержатся книги которые на руках у пользователя и каков форммат записи книг?
     
  6. fromdns

    fromdns Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    6
    Симпатии:
    0
    Хорошо, не буду. Перехожу на :)
     
  7. fromdns

    fromdns Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    6
    Симпатии:
    0
    Пока только ид пользователя. Книги еще в процессе. Думаю, либо ссылка на книгу из электронного каталога, либо ISBN номер, через тот же json передаваться будет и уже в таблицу вноситься.. Но это уже будет когда с текущей задачей разберусь, всё остальное как то менее проблемным в плане реализации кажется.
     
  8. fromdns

    fromdns Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    6
    Симпатии:
    0
    В чём тут проблема?
    Код (Text):
    1. Parse error: syntax error, unexpected '$data' (T_VARIABLE) in F:\OSPanel\domains\lib\ucheck.php on line 13
    PHP:
    1. <?php
    2. $db['host']='localhost';
    3. $db['user']='root';
    4. $db['pass']='';
    5. $db['db']='lib';
    6. $conn=@mysql_connect($db['host'],$db['user'],$db['pass']) or die("Ошибка БД");
    7. $db=@mysql_select_db($db['db']) or die("Ошибка БД");
    8.  
    9. $sql = "SELECT * FROM users";
    10. foreach($users as $user)
    11. {
    12.   $userid = $user->userid
    13.   $data = file_get_contents("http://localhost/json/". $userid);
    14.   $json = json_decode($data);
    15.   $x = $json->{'book'};
    16. if ($x > 5) {
    17. mysql_query("INSERT INTO uicheck (userid,book) VALUES ('".$userid."','".$x."')");
    18. }
    19. ?>
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. $userid = $user->userid; <-------;
     
  10. fromdns

    fromdns Новичок

    С нами с:
    28 мар 2018
    Сообщения:
    6
    Симпатии:
    0
    После правки:
    Warning: Invalid argument supplied for foreach() in F:\OSPanel\domains\lib\ucheck.php on line 10
     
  11. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510