За последние 24 часа нас посетили 17343 программиста и 1650 роботов. Сейчас ищут 933 программиста ...

Чем заменить "IN"

Тема в разделе "MySQL", создана пользователем raikage, 25 окт 2015.

  1. raikage

    raikage Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    48
    Симпатии:
    0
    Есть вот такой запрос

    Код (PHP):
    1. $sql = $db->super_query("SELECT user_referals, user_ref_count FROM `".PREFIX."_users` WHERE user_id='{$user_id}'");
    2.             
    3.             $sqls = $db->super_query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id IN ({$sql['user_referals']}) AND user_subscription_!='' ",1);
    4.             
    5.             $allId = sql_IN($sqls, 'user_id');
    6.  
    Прочитал, что новый mysql не использует "IN" и у меня выводит ошибку
    Код (PHP):
    1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND user_subscription_!=''' at line 1 -----SELECT user_id FROM `vii_users` WHERE user_id IN () AND user_subscription_!='' 
    Чем могу заменить IN?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    какой новый mysql?
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Где такую чушь прочитали? Ошибка - потому что после in скобки пустые, должно быть хотя бы одно значение
     
  4. raikage

    raikage Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    48
    Симпатии:
    0
    на ответах мейла прочитал, так и знал, там ничего путного не напишут)

    Добавлено спустя 1 минуту 4 секунды:
    т.е тут
    Код (Text):
    1. {$sql['user_referals']}
    запрос не выводит значения?
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  6. raikage

    raikage Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    48
    Симпатии:
    0
    Спасибо, прочитал) Но почему не могу использовать два запроса в одном?
    Код (Text):
    1.             $sqls = $db->super_query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id IN (SELECT user_referals, user_ref_count FROM `".PREFIX."_users` WHERE user_id='{$user_id}') AND user_subscription_!='' ",1);
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    В DLE не силён, но запрос показывает, что-то в этом роде
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    raikage какие два запроса? Там под запрос, читай debug и выводи текст sql запроса, проверь его на правильность, если не сможешь, то напиши его сюда.
    Код который ты дал, это формирования запроса, но не он сам.
     
  9. raikage

    raikage Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    48
    Симпатии:
    0
    Все таки не разобрался почему user_id IN ({$sql['user_referals']}) выводит пустую строку.. Вроде выше написан запрос на вывод из базы

    Код (Text):
    1. if(!defined('MOZG'))
    2.         die('Haking');
    3.        
    4.  
    5.     $act = $_GET['act'];
    6.     $user_id = $user_info['user_id'];
    7.     switch($act){
    8.        
    9.         case"ref_calc":
    10.             $tpl->load_template('referals/calc.tpl');
    11.             $tpl->compile('content');
    12.         break;
    13.        
    14.         case"ref_search":
    15.             $tpl->load_template('referals/search.tpl');
    16.             $tpl->compile('content');
    17.         break;
    18.        
    19.         case"send":
    20.             $v = intval($_POST['v']);
    21.             $count = intval($_POST['count']);
    22.            
    23.             $sql = $db->super_query("SELECT user_referals, user_ref_count FROM `".PREFIX."_users` WHERE user_id='{$user_id}'");
    24.            
    25.             $sqls = $db->super_query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id IN ({$sql['user_referals']}) AND user_subscription_!='' ",1);
    26.            
    27.             $allId = sql_IN($sqls, 'user_id');
    28.            
    29.             if($count <= total_active($allId) ){
    30.                 $db->query("INSERT INTO `".PREFIX."_admin_pay` SET pay_usid='{$user_id}',pay_count='{$count}',pay_version='{$v}'");
    31.                 die('ok');
    32.             }else
    33.                 die('err');
    34.            
    35.         break;
    36.        
    37.         case"ref_search_ajax":
    38.            
    39.             $query = textFilter($_POST['query']);
    40.            
    41.             $sql = $db->super_query("SELECT tb1.reflist_us_id,tb2.user_id, user_search_pref, user_photo FROM `".PREFIX."_ref_list` tb1,`".PREFIX."_users` tb2
    42.             WHERE tb2.user_search_pref LIKE '%{$query}%' AND tb2.user_id=tb1.reflist_us_id ORDER BY user_id DESC LIMIT 20",1);
    43.            
    44.             $tpl->load_template('referals/users.tpl');
    45.             foreach($sql as $row)
    46.             {
    47.                 $tpl->set('{user_id}', $row['user_id']);
    48.                 $tpl->set('{user_search_pref}', $row['user_search_pref']);
    49.                 $tpl->set('{user_photo}', user_avatar($row['user_photo'], $row['user_id'], 50));
    50.                 $tpl->compile('content');
    51.             }
    52.             die($tpl->result['content']);
    53.            
    54.         break;
    55.        
    56.         //############ Вывод не оплативших пользователей ############//
    57.         case"ajax_people":
    58.        
    59.             $post = intval($_POST['i']);
    60.             if($post < 0 || $post > 5) die();
    61.            
    62.             $sql = $db->super_query("SELECT user_referals FROM `".PREFIX."_users` WHERE user_id='{$user_id}'");
    63.            
    64.             $queryArray = array();
    65.             if($sql)
    66.             {
    67.                 $queryArray[0] = json_decode(circles($sql['user_referals'],1), true);  
    68.                
    69.                 if($one_circle['refs'] != ''){
    70.                     $queryArray[1] = json_decode(circles( $one_circle['refs'],1 ), true);
    71.                     if($two_circle['refs'] != ''){
    72.                         $queryArray[2] = json_decode(circles( $two_circle['refs'],1 ), true);
    73.                         if($three_circle['refs'] != ''){
    74.                             $queryArray[3] = json_decode(circles( $three_circle['refs'],1 ), true);
    75.                             if($four_circle['refs'] != ''){
    76.                                 $queryArray[4] = json_decode(circles( $four_circle['refs'],1 ), true);
    77.                             }
    78.                         }
    79.                     }
    80.                 }
    81.             }
    82.            
    83.             die($queryArray[$post]['tpl']);
    84.         break;
    85.        
    86.         case"ref_history":
    87.            
    88.             $s = $db->super_query("SELECT user_referals FROM `".PREFIX."_users` WHERE user_id='{$user_id}'");
    89.             $sql = $db->super_query("SELECT user_id, user_search_pref, user_photo, user_referals FROM `".PREFIX."_users`
    90.                 WHERE user_id IN ({$s['user_referals']})",1);
    91.            
    92.             $tpl->load_template('referals/friend.tpl');
    93.             foreach($sql as $row){
    94.                 $tpl->set('{user-id}', $row['user_id']);
    95.                 $tpl->set('{name}', $row['user_search_pref']);
    96.                 $tpl->set('{ava}', user_avatar($row['user_photo'], $row['user_id'], 50));
    97.                 $tpl->compile('users');
    98.             }
    99.            
    100.             $tpl->load_template('referals/history.tpl');
    101.             $tpl->set('{users}', $tpl->result['users']);
    102.             $tpl->compile('content');
    103.         break;
    104.        
    105.         //############# Страница вывода приглашенных ############//
    106.         case"ref_people":
    107.            
    108.             $sql = $db->super_query("SELECT user_referals, user_ref_count FROM `".PREFIX."_users` WHERE user_id='{$user_id}'");
    109.            
    110.             $sqls = $db->super_query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id IN ({$sql['user_referals']}) AND user_subscription_!='' ",1);
    111.            
    112.             $allId = sql_IN($sqls, 'user_id');
    113.             $zero_circle = array('count' => count(explode(',', $allId)), 'refs' => $allId);
    114.            
    115.             if($sql)
    116.             {
    117.                 $one_circle = json_decode(circles($sql['user_referals']), true);   
    118.                 if($one_circle['refs'] != ''){
    119.                     $two_circle = json_decode(circles( $one_circle['refs'] ), true);
    120.                     if($two_circle['refs'] != ''){
    121.                         $three_circle = json_decode(circles( $two_circle['refs'] ), true);
    122.                         if($three_circle['refs'] != ''){
    123.                             $four_circle = json_decode(circles( $three_circle['refs'] ), true);
    124.                             if($four_circle['refs'] != ''){
    125.                                 $five_circle = json_decode(circles( $four_circle['refs'] ), true);
    126.                             }
    127.                         }
    128.                     }
    129.                 }
    130.             }
    131.            
    132.             $tpl->load_template('referals/peoples.tpl');
    133.             $tpl->set('{all_people}',$sql['user_ref_count']);
    134.             $tpl->set('{active_people}', $zero_circle['count']);
    135.             $tpl->set('{all_people2}',$two_circle['countAll'] ? $two_circle['countAll'] : 0);
    136.             $tpl->set('{active_people2}', $two_circle['countAlls'] ? $two_circle['countAlls'] : 0);
    137.             $tpl->set('{all_people3}',$three_circle['countAll'] ? $three_circle['countAll'] : 0);
    138.             $tpl->set('{active_people3}', $three_circle['countAlls'] ? $three_circle['countAlls'] : 0);
    139.             $tpl->set('{all_people4}',$four_circle['countAll'] ? $four_circle['countAll'] : 0);
    140.             $tpl->set('{active_people4}', $four_circle['countAlls'] ? $four_circle['countAlls'] : 0);
    141.             $tpl->set('{all_people5}', $five_circle['countAll'] ? $five_circle['countAll'] : 0);
    142.             $tpl->set('{active_people5}', $five_circle['countAlls'] ? $five_circle['countAlls'] : 0);
    143.             $tpl->set('{one_circle}', $one_circle['tpl'] ? $one_circle['tpl'] : '');
    144.             $tpl->set('{two_circle}', $two_circle['tpl'] ? $two_circle['tpl'] : '');
    145.             $tpl->set('{three_circle}', $three_circle['tpl'] ? $three_circle['tpl'] : '');
    146.             $tpl->set('{four_circle}', $four_circle['tpl'] ? $four_circle['tpl'] : '');
    147.             $tpl->set('{five_circle}', $five_circle['tpl'] ? $five_circle['tpl'] : '');
    148.             $tpl->compile('content');
    149.            
    150.         break;
    151.        
    152.        
    153.         default:
    154.        
    155.             $ref = $db->super_query("SELECT ref_balance, ref_count_people, ref_referer FROM `".PREFIX."_referals`
    156.             WHERE ref_user_id='{$user_id}'");
    157.            
    158.             $sql = $db->super_query("SELECT user_referals, user_ref_count FROM `".PREFIX."_users` WHERE user_id='{$user_id}'");
    159.            
    160.             $sqls = $db->super_query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id IN ({$sql['user_referals']}) AND user_subscription_!='' ",1);
    161.            
    162.             $allId = sql_IN($sqls, 'user_id');
    163.            
    164.             if($ref['ref_referer'])
    165.             {
    166.                 $us = $db->super_query("SELECT user_search_pref, user_photo FROM`".PREFIX."_users` WHERE user_id='{$ref['ref_referer']}'");
    167.             }
    168.             $tpl->load_template('referals/referals.tpl');
    169.             $tpl->set('{count}', total_active($allId));
    170.             $tpl->set('{all_count}', $sql['user_ref_count']);
    171.             $tpl->set('{ref_balance}', $ref['ref_balance']);
    172.             $tpl->set('{ref_count_people}', $ref['ref_count_people']);
    173.             $tpl->set('{ref_referer}', $ref['ref_referer']);
    174.             $tpl->set('{user_search_pref}', $us['user_search_pref']);
    175.             $tpl->set('{user_photo}', user_avatar($us['user_photo'],$us['ref_referer'],50));
    176.             $tpl->compile('content');
    177.     }
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Для того, чтоб это понять, надо всю вашу базу видеть
     
  11. raikage

    raikage Активный пользователь

    С нами с:
    11 мар 2012
    Сообщения:
    48
    Симпатии:
    0
    Вот все нужные таблицы.. Я все еще не могу решить проблему, помогите плиз, в долгу не останусь
    Код (Text):
    1.  
    2. --
    3. -- Структура таблицы `vii_admin_pay`
    4. --
    5.  
    6. CREATE TABLE IF NOT EXISTS `vii_admin_pay` (
    7.   `pay_id` int(11) NOT NULL AUTO_INCREMENT,
    8.   `pay_usid` int(11) NOT NULL,
    9.   `pay_count` int(11) NOT NULL,
    10.   `pay_version` int(11) NOT NULL,
    11.   `pay_type` int(11) NOT NULL,
    12.   PRIMARY KEY (`pay_id`)
    13. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
    14.  
    15. --
    16. -- Структура таблицы `vii_payments`
    17. --
    18.  
    19. CREATE TABLE IF NOT EXISTS `vii_payments` (
    20.   `pay_id` int(11) NOT NULL AUTO_INCREMENT,
    21.   `pay_user_id` int(11) NOT NULL,
    22.   `pay_date` int(11) NOT NULL,
    23.   `pay_prefix` int(11) NOT NULL,
    24.   `pay_total` varchar(255) NOT NULL,
    25.   `pay_type` int(11) NOT NULL,
    26.   `pay_count_month` int(11) NOT NULL,
    27.   PRIMARY KEY (`pay_id`)
    28. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=43 ;
    29.  
    30. --
    31. -- Структура таблицы `vii_referals`
    32. --
    33.  
    34. CREATE TABLE IF NOT EXISTS `vii_referals` (
    35.   `ref_referer` int(11) NOT NULL,
    36.   `ref_user_id` int(11) NOT NULL,
    37.   `ref_count_people` int(11) NOT NULL,
    38.   `ref_balance` int(11) NOT NULL
    39. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    40.  
    41. -- --------------------------------------------------------
    42.  
    43. --
    44. -- Структура таблицы `vii_ref_list`
    45. --
    46.  
    47. CREATE TABLE IF NOT EXISTS `vii_ref_list` (
    48.   `reflist_id` int(11) NOT NULL,
    49.   `reflist_us_id` int(11) NOT NULL,
    50.   `reflist_fr_id` int(11) NOT NULL,
    51.   `ref_date` int(11) NOT NULL
    52. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    53. --
    54. -- Структура таблицы `vii_users`
    55. --
    56.  
    57. CREATE TABLE IF NOT EXISTS `vii_users` (
    58.   `user_id` mediumint(11) NOT NULL AUTO_INCREMENT,
    59.   `user_email` varchar(50) NOT NULL,
    60.   `user_password` varchar(32) NOT NULL,
    61.   `user_name` varchar(30) NOT NULL,
    62.   `user_lastname` varchar(30) NOT NULL,
    63.   `user_photo` varchar(255) NOT NULL,
    64.   `user_wall_id` int(11) NOT NULL,
    65.   `user_birthday` varchar(30) NOT NULL,
    66.   `user_sex` varchar(3) NOT NULL,
    67.   `user_day` varchar(3) NOT NULL,
    68.   `user_month` varchar(3) NOT NULL,
    69.   `user_year` varchar(4) NOT NULL,
    70.   `user_country` varchar(6) NOT NULL,
    71.   `user_city` varchar(6) NOT NULL,
    72.   `user_reg_date` varchar(20) NOT NULL,
    73.   `user_lastdate` varchar(20) NOT NULL,
    74.   `user_group` varchar(1) NOT NULL,
    75.   `user_hid` varchar(64) NOT NULL,
    76.   `user_country_city_name` varchar(100) NOT NULL,
    77.   `user_search_pref` varchar(60) NOT NULL,
    78.   `user_xfields` text NOT NULL,
    79.   `xfields` text NOT NULL,
    80.   `user_xfields_all` text NOT NULL,
    81.   `user_albums_num` smallint(6) NOT NULL,
    82.   `user_friends_demands` int(11) NOT NULL,
    83.   `user_friends_num` mediumint(8) NOT NULL,
    84.   `user_last_visit` varchar(15) NOT NULL,
    85.   `user_fave_num` mediumint(8) NOT NULL,
    86.   `user_pm_num` mediumint(8) NOT NULL,
    87.   `user_notes_num` mediumint(8) NOT NULL,
    88.   `user_subscriptions_num` mediumint(8) NOT NULL,
    89.   `user_videos_num` mediumint(8) NOT NULL,
    90.   `user_wall_num` int(11) NOT NULL,
    91.   `user_status` varchar(255) NOT NULL,
    92.   `user_privacy` varchar(250) NOT NULL,
    93.   `user_blacklist_num` mediumint(8) NOT NULL,
    94.   `user_blacklist` text NOT NULL,
    95.   `user_sp` varchar(10) NOT NULL,
    96.   `user_support` smallint(6) NOT NULL,
    97.   `user_balance` mediumint(8) NOT NULL,
    98.   `user_lastupdate` varchar(10) NOT NULL,
    99.   `user_gifts` mediumint(8) NOT NULL,
    100.   `user_public_num` mediumint(8) NOT NULL,
    101.   `user_audio` int(11) NOT NULL,
    102.   `user_msg_type` tinyint(2) NOT NULL,
    103.   `user_delet` tinyint(3) NOT NULL,
    104.   `user_ban` tinyint(3) NOT NULL,
    105.   `user_ban_date` varchar(10) NOT NULL,
    106.   `user_new_mark_photos` mediumint(8) NOT NULL,
    107.   `user_doc_num` mediumint(8) NOT NULL,
    108.   `user_logged_mobile` tinyint(1) NOT NULL,
    109.   `user_subscription_` int(11) NOT NULL,
    110.   `user_referals` text NOT NULL,
    111.   `user_ref_count` int(11) NOT NULL,
    112.   `user_webmoney` varchar(255) NOT NULL,
    113.   `user_qiwi` varchar(255) NOT NULL,
    114.   PRIMARY KEY (`user_id`),
    115.   KEY `user_logged_hash` (`user_hid`),
    116.   KEY `user_password` (`user_password`),
    117.   KEY `user_email` (`user_email`),
    118.   KEY `user_country` (`user_country`),
    119.   KEY `user_city` (`user_city`),
    120.   KEY `user_photo` (`user_photo`),
    121.   KEY `user_sex` (`user_sex`),
    122.   KEY `user_day` (`user_day`),
    123.   KEY `user_month` (`user_month`),
    124.   KEY `user_year` (`user_year`),
    125.   KEY `user_delet` (`user_delet`),
    126.   KEY `user_ban` (`user_ban`)
    127. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    raikage оформи код правильно и запрос покажи который не работает