Всем здравствуйте. Помогите, пожалуйста, разобраться. CMS WordPress. Установлены плагины для платного доступа Ultimate Membership Pro и Ultimate Affiliate Pro. Они между собой связаны. Есть такой код: Код (Text): <?php error_reporting(-1); header('Content-Type: text/html; charset=utf-8'); //Скрипт для 100000 require_once 'connection.php'; // подключаем скрипт // подключаемся к серверу $link = mysqli_connect($host, $user, $password, $database); // Соединяемся с базой // Ругаемся, если соединение установить не удалось if (!$link) { echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error(); exit; } global $wpdb; $cur_user = wp_get_current_user()->user_login; $cur_id = get_current_user_id(); $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)"); //$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."' while ($result = mysqli_fetch_array($sql)) { //$cur_id = get_current_user_id(); $start=($result['create_date']); $user_uid=($result['uid']); $stat=($result['status']); $reg_lid=($result['lid']); $amount=($result['amount_value']); /* Время */ $now = time(); // текущее время (метка времени) $datediff = date('d.m.Y') - date("d.m.Y", strtotime($result['create_date'])); // получаем разность дат if ( is_user_logged_in()&&(($cur_id = get_current_user_id())==($user_uid=($result['uid'])))&&($reg_lid['lid']=1)) { echo 'Вы авторизованы на сайте!<br>'; //if($reg_lid['lid']=1){ /* Начисляем процент для lid=1*/ $proc = 25; $proc_d =0.25*$datediff; $proc = $amount/100*$proc; $proc_d = $amount/100*$proc_d; $amountWithPct_all = $amount + $proc; $amountWithPct_d = $amount + $proc_d; round ($amountWithPct_all); round ($amountWithPct_d); } elseif(is_user_logged_in()&&($reg_lid['lid']=2)){ //elseif($reg_lid['lid']=2){ /* Начисляем процент для lid=2*/ $proc = 60; //Процентов за всё время $proc_d =0.6*$datediff; //Процентов в день $proc = $amount/100*$proc; // высчитываем процент от числа $proc_d = $amount/200*$proc_d; // высчитываем процент в день от числа $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа round ($amountWithPct_all); // округляем round ($amountWithPct_d); // округляем } elseif (is_user_logged_in()&&($reg_lid['lid']=3)){ /* Начисляем процент для lid=3*/ $proc = 89; //Процентов за всё время $proc_d =0.89*$datediff; //Процентов в день $proc = $amount/100*$proc; // высчитываем процент от числа $proc_d = $amount/300*$proc_d; // высчитываем процент в день от числа $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа round ($amountWithPct_all); // округляем round ($amountWithPct_d); // округляем } else{ echo "Данных ещё нет"; } /*Выводим результат*/ echo "ID пользователя: {$user_uid}<br>"; echo "ID пользователя из get: {$cur_id}<br>"; echo "Дата начала: {$start}<br>"; echo "Прошло дней: {$datediff}<br>"; echo "Внесено: {$amount} в‚Ѕ<br>"; echo "Заработано на данный момент: $proc_d в‚Ѕ<br>"; echo "Cумма на конец периода: $amountWithPct_all в‚Ѕ<br><br>"; global $current_user; get_currentuserinfo(); echo 'Логин: ' . $current_user->user_login . "\n<br>"; echo 'ID : ' . $cur_id . "\n<br>"; //echo 'LID :' .$glid . "\n<br>"; echo 'Внесено: ' . $amount . "\n<br>"; echo "Прошло дней: {$datediff}<br>"; echo 'Заработано на данный момент: ' . $proc_d . "в‚Ѕ\n<br>"; echo 'Cумма на конец периода: ' . $amountWithPct_all . "в‚Ѕ\n<br>"; } ?> Есть таблица 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 пользователя и показывать только его данные из таблицы. Но я совершенно не понимаю как(
"SELECTcreate_date, uid, status ,amount_value, lid FROM " . $wpdb->base_prefix . "ihc_orders WHERE status = 'Completed' AND uid = $cur_id"
Всем спасибо. В общем я разобралась. Код вышел таким: Спойлер: Код Код (Text): <?php require_once 'connection.php'; $link = mysqli_connect($host, $user, $password, $database); if (!$link) { echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error(); exit; } global $wpdb; $cur_user = wp_get_current_user()->user_login; $cur_id = get_current_user_id(); $sql = mysqli_query($link, "SELECT " . $wpdb->base_prefix . "ihc_orders.create_date, " . $wpdb->base_prefix . "ihc_orders.uid, " . $wpdb->base_prefix . "ihc_orders.status , " . $wpdb->base_prefix . "ihc_orders.amount_value, " . $wpdb->base_prefix . "ihc_orders.lid, " . $wpdb->base_prefix . "users.id FROM " . $wpdb->base_prefix . "ihc_orders, " . $wpdb->base_prefix . "users WHERE " . $wpdb->base_prefix . "ihc_orders.uid=" . $wpdb->base_prefix . "users.id AND status= 'Completed'"); while ($result = mysqli_fetch_array($sql)) { $start=($result['create_date']); $user_uid=($result['uid']); $user_id=($result['id']); $stat=($result['status']); $reg_lid=($result['lid']); $amount=($result['amount_value']); $now = time(); $datediff = date('d.m.Y') - date("d.m.Y", strtotime($result['create_date'])); if ($user_uid==$cur_id&&($reg_lid['lid']==1)) { /* Начисляем процент для lid=1*/ $proc = 25; //Процентов за всё время $proc_d =0.25*$datediff; //Процентов в день $proc = $amount/100*$proc; // высчитываем процент от числа $proc_d = $amount/100*$proc_d; // высчитываем процент в день от числа $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа round ($amountWithPct_all); // округляем round ($amountWithPct_d); // округляем echo "Дата оплаты: {$start}<br>"; echo "Прошло дней: {$datediff}<br>"; echo "Внесено: {$amount} ₽<br>"; echo "Заработано на данный момент: $proc_d ₽<br>"; echo "Cумма на конец периода: $amountWithPct_all ₽<br><br>"; } elseif($user_uid==$cur_id&&($reg_lid['lid']==2)){ /* Начисляем процент для lid=2*/ $proc = 60; //Процентов за всё время $proc_d =0.6*$datediff; //Процентов в день $proc = $amount/100*$proc; // высчитываем процент от числа $proc_d = $amount/200*$proc_d; // высчитываем процент в день от числа $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа round ($amountWithPct_all); // округляем round ($amountWithPct_d); // округляем echo "Дата оплаты: {$start}<br>"; echo "Прошло дней: {$datediff}<br>"; echo "Внесено: {$amount} ₽<br>"; echo "Заработано на данный момент: $proc_d ₽<br>"; echo "Cумма на конец периода: $amountWithPct_all ₽<br><br>"; } elseif ($user_uid==$cur_id&&($reg_lid['lid']==3)){ /* Начисляем процент для lid=3*/ $proc = 89; //Процентов за всё время $proc_d =0.89*$datediff; //Процентов в день $proc = $amount/100*$proc; // высчитываем процент от числа $proc_d = $amount/300*$proc_d; // высчитываем процент в день от числа $amountWithPct_all = $amount + $proc; // суммируем число с процентами от этого числа $amountWithPct_d = $amount + $proc_d; // суммируем число с процентами в день от этого числа round ($amountWithPct_all); // округляем round ($amountWithPct_d); // округляем echo "Дата оплаты: {$start}<br>"; echo "Прошло дней: {$datediff}<br>"; echo "Внесено: {$amount} ₽<br>"; echo "Заработано на данный момент: $proc_d ₽<br>"; echo "Cумма на конец периода: $amountWithPct_all ₽<br><br>"; } else{ } } ?> Грязновато, но работает.
@Ирина Гущина так не заработает? PHP: $sql = mysqli_query($link, "SELECT ihc_orders.create_date, ihc_orders.uid, ihc_orders.status , ihc_orders.amount_value, ihc_orders.lid, users.id FROM " . $wpdb->base_prefix . "ihc_orders, " . $wpdb->base_prefix . "users WHERE ihc_orders.uid=" . $wpdb->base_prefix . "users.id AND status= 'Completed'");