Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как связать одинаковые значения из двух таблиц и вывести информацию только для залогиненого пользователя?
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Как связать одинаковые значения из двух таблиц и вывести информацию только для залогиненого пользователя?

Страниц (1): [1]
 

1. Ирина Гущина - 08 Августа, 2019 - 17:10:58 - перейти к сообщению
Всем здравствуйте. Помогите, пожалуйста, разобраться. CMS WordPress. Установлены плагины для платного доступа Ultimate Membership Pro и Ultimate Affiliate Pro. Они между собой связаны. Есть такой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3. //Скрипт для 100000
  4. require_once 'connection.php'; // подключаем скрипт
  5. // подключаемся к серверу
  6.  $link = mysqli_connect($host, $user, $password, $database); // Соединяемся с базой
  7.  // Ругаемся, если соединение установить не удалось
  8.  if (!$link) {
  9.    echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
  10.    exit;
  11.  }
  12.    global $wpdb;
  13.    $cur_user = wp_get_current_user()->user_login;
  14.    $cur_id = get_current_user_id();
  15.  $sql = mysqli_query($link, "SELECT create_date, uid, status , amount_value, lid FROM " . $wpdb->base_prefix . "ihc_orders WHERE status= 'Completed' AND uid IN (SELECT ID FROM " . $wpdb->base_prefix . "users)");
  16.    //$sql = mysqli_query($link, "SELECT ID FROM " . $wpdb->base_prefix . "users WHERE ID IN (SELECT create_date, uid, status , amount_value, lid FROM " . $wpdb->base_prefix . "ihc_orders)");//status= 'Completed' AND //OR uid='".$cur_u_id."'
  17.  while ($result = mysqli_fetch_array($sql)) {
  18.            //$cur_id = get_current_user_id();
  19.            $start=($result['create_date']);
  20.            $user_uid=($result['uid']);
  21.            $stat=($result['status']);
  22.            $reg_lid=($result['lid']);
  23.            $amount=($result['amount_value']);
  24.      /* Время */
  25.            $now = time(); // текущее время (метка времени)
  26.            $datediff = date('d.m.Y') - date("d.m.Y", strtotime($result['create_date'])); // получаем разность дат
  27.      
  28.      
  29.      if ( is_user_logged_in()&&(($cur_id = get_current_user_id())==($user_uid=($result['uid'])))&&($reg_lid['lid']=1)) {
  30.    echo 'Вы авторизованы на сайте!<br>';
  31.          //if($reg_lid['lid']=1){
  32.        /* Начисляем процент для lid=1*/  
  33.            $proc = 25;
  34.            $proc_d =0.25*$datediff;
  35.            $proc = $amount/100*$proc;
  36.            $proc_d = $amount/100*$proc_d;
  37.            $amountWithPct_all = $amount + $proc;
  38.            $amountWithPct_d = $amount + $proc_d;
  39.            round ($amountWithPct_all);
  40.            round ($amountWithPct_d);    
  41.      }
  42.      elseif(is_user_logged_in()&&($reg_lid['lid']=2)){
  43. //elseif($reg_lid['lid']=2){
  44.      /* Начисляем процент для lid=2*/
  45.            $proc = 60; //Процентов за всё время
  46.            $proc_d =0.6*$datediff; //Процентов в день
  47.            $proc = $amount/100*$proc; // высчитываем процент от числа
  48.            $proc_d = $amount/200*$proc_d; // высчитываем процент в день от числа
  49.            $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа
  50.            $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа
  51.            round ($amountWithPct_all); // округляем
  52.            round ($amountWithPct_d); // округляем
  53. }
  54.      elseif (is_user_logged_in()&&($reg_lid['lid']=3)){
  55.              /* Начисляем процент для lid=3*/
  56.            $proc = 89; //Процентов за всё время
  57.            $proc_d =0.89*$datediff; //Процентов в день
  58.            $proc = $amount/100*$proc; // высчитываем процент от числа
  59.            $proc_d = $amount/300*$proc_d; // высчитываем процент в день от числа
  60.            $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа
  61.            $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа
  62.            round ($amountWithPct_all); // округляем
  63.            round ($amountWithPct_d); // округляем
  64. }
  65.      else{
  66.          echo "Данных ещё нет";
  67.      }
  68.      
  69.      /*Выводим результат*/
  70.        echo "ID пользователя: {$user_uid}<br>";
  71.        echo "ID пользователя из get: {$cur_id}<br>";
  72.        echo "Дата начала: {$start}<br>";
  73.        echo "Прошло дней: {$datediff}<br>";
  74.        echo "Внесено: {$amount} в‚Ѕ<br>";
  75.        echo "Заработано на данный момент: $proc_d в‚Ѕ<br>";
  76.        echo "Cумма на конец периода: $amountWithPct_all в‚Ѕ<br><br>";
  77.      
  78. global $current_user;
  79. get_currentuserinfo();
  80. echo 'Логин: ' . $current_user->user_login . "\n<br>";
  81. echo 'ID : ' . $cur_id . "\n<br>";
  82. //echo 'LID :' .$glid . "\n<br>";
  83. echo 'Внесено: ' . $amount  . "\n<br>";
  84. echo "Прошло дней: {$datediff}<br>";
  85. echo 'Заработано на данный момент: ' . $proc_d . "в‚Ѕ\n<br>";
  86. echo 'Cумма на конец периода: ' . $amountWithPct_all . "в‚Ѕ\n<br>";
  87.      
  88.  }
  89. ?>

Есть таблица wp_users в которой есть столбец ID. Есть таблица wp_ihc_orders со столбцом uid( значения которого соответствуют столбцу ID из таблицы wp_users). Также в таблице wp_ihc_orders есть столбцы create_date, lid и amount_value значения из которых должны получать пользователи с ID под которым они вошли в личный кабинет.
Сейчас выводится информация по всем пользователям, а надо только по пользователю который в данный момент в своём личном кабинете.
Как связать ID залогиненого пользователя с его uid?
Как узнать lid и в соответствии с этими значениями вывести ему информацию?
ID (uid?) может быть бесконечное множество, а lid до 15.
Что-то не могу разобраться. Я так думаю надо добавить какую-то проверку по ID пользователя и показывать только его данные из таблицы. Но я совершенно не понимаю как(

 

Powered by ExBB FM 1.0 RC1