решено Помогите с запросом в базу

L

ler

Гость
Если у юзера карма повышается до 100, то по крону его добавлять в группу VIP, В группу то он добавляется, но у него нет прав на скрытый раздел. Права появляются если вручную добавить юзера в группу ВИП

PHP:
$vipkarma=99;
$sql = "SELECT user_id,user_level,user_karma FROM bb_users WHERE user_karma > $vipkarma AND user_rank=0";
 
//$sql = "SELECT user_id,user_level,user_karma FROM bb_users WHERE user_level = 20";
$uarray=mysql_query($sql);
 
//$sql2 = "SELECT user_id,group_id FROM ".BB_USER_GROUP." WHERE group_id=4";
//$uarray2=mysql_query($sql2);
while ($users=mysql_fetch_assoc($uarray))
{
 
//echo "<pre>";
//var_dump($users);
//echo "</pre>";
$time=time();
$uid=$users['user_id'];
DB()->query("UPDATE bb_users SET user_rank = 3,user_level = 20 WHERE user_id=$uid") or print("duplicate - ".mysql_error());
DB()->query("INSERT INTO bb_user_group SET user_id=$uid, group_id=24,user_pending=0,user_time=$time") or print("duplicate - ".mysql_error());
}
 

Alex Kur

Пользователь
Запросы в цикле - жуткая штука. В нем лучше собрать шаблон запросов, а потом уже сделать собсна запрос.
Пример:


Please Login or Register to view hidden text.

- для апдейта.

Please Login or Register to view hidden text.

- для инсерта.

Результат - 3 стабильных запроса, вместо огромного количества ненужных)
 
L

ler

Гость
Берем из массива $users значения user_id,user_level,user_karma и склеиваем переменные через запятую в строки по отдельности? так чтоль?
 
L

ler

Гость
Ну с этим разберусь, интересная штука. Но что с правами делать.

Как я понял
user_rank = 3 - Отвечает за цвет лычки
user_level = 20 - Говорит о том что юзер состоит в группе (в любой группе)
Но как юзеру дать права на скрытый форум с айди f=150? В какой это таблице?
 

Alex Kur

Пользователь
Берем из массива $users значения user_id,user_level,user_karma и склеиваем переменные через запятую в строки по отдельности? так чтоль?
*в скобочки)
Лучей (юзер ранк) кроме повышения ЧСВ красивыми статусами ничего не дает. Права можно дать предварительно созданной группе. Т.е создаешь новое звание, группу, даешь ей права через админ. панель и при выбор ке т юзеров с репой >= 100 перемещаешь юзера в определенную группу (bb_user_group) и присваиваешь user_rank звания випа
 

PheRum

Пользователь
готовая крон задача
Код:
<?php
 
if (!defined('BB_ROOT')) die(basename(__FILE__));
 
define('KARMA',      100); // Минимальная карма пользователя
define('GROUP_ID',    24); // ID Группы в которую добавляем
require(INC_DIR .'functions_group.php');
 
$sql = DB()->fetch_rowset("
    SELECT user_id
    FROM ". BB_USERS ."
    WHERE user_id NOT IN(". EXCLUDED_USERS_CSV .")
        AND user_karma >= ". KARMA ."
        AND user_active = 1
");
 
foreach ($sql as $row)
{
    add_user_into_group (GROUP_ID, $row['user_id']);
}
 
Сверху