|
|
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Всем привет. Ситуация у меня такая. Я админ одного букса. Мне нужно сделать страницу пользователей, у которых нет реферера. Есть таблица с пользователями tb_users в которой прописаны id , username . Есть еще одна таблица bannedUsers , в которой отображаются забаненные пользователи из таблицы tb_users. В таблице bannedUsers прописаны id и name . Условие: id в обеих таблицах могут как совпадать, так и отличаться . Нужно вывести id и username пользователей из tb_users, но при этом исключить тех, что указаны в bannedUsers. Также из таблицы tb_users необходимо исключить пользователя с id=1 или username=Admin. Я это пытаюсь сделать так: автор<?php $all_users_no_ref = 0; $sql = mysql_query( "SELECT `u`.`id`, `b`.`id` as `banned` ". "FROM `tb_users` as `u` ". "LEFT JOIN `bannedUsers` as `b` ". "ON `u`.`username`=`b`.`name` ". "WHERE `u`.`referer`= '';" ); while ($row = mysql_fetch_assoc($sql)) { if (!is_null($row['banned'])) continue; if ($row['id'] == 1) continue; $all_users_no_ref++; } if($all_users_no_ref>0){ echo 'Всего свободных рефералов: <b>'.$all_users_no_ref.'</b><br/>'; //begin navigation require("navigator/navigator.php"); $perpage = 20; $count = $all_users_no_ref; $pages_count = ceil($count / $perpage); $page = (isset($_GET["page"]) && preg_match("|^[0-9\-]{1,11}$|", trim($_GET["page"]))) ? intval(trim($_GET["page"])) : "1"; if ($page > $pages_count | $page<0) $page = $pages_count; $start_pos = ($page - 1) * $perpage; if($start_pos<0) $start_pos = 0; universal_link_bar($count, $page, $_SERVER['PHP_SELF'], $perpage, 10, '?page=', ""); //end navigation echo '<table class="tables">'; echo '<thead><tr align="center">'; echo '<th>Логин, Id</th>'; echo '</tr></thead>'; $sql = mysql_query("SELECT `id`,`username` FROM `tb_users` WHERE `referer`='' ORDER BY `id` ASC LIMIT $start_pos,$perpage"); if(mysql_num_rows($sql)>0) { while ($row = mysql_fetch_row($sql)) { $bannedname = $row["1"]; if(mysql_num_rows(mysql_query("SELECT `id` FROM `bannedUsers` WHERE `name` = '".$bannedname."' LIMIT 1 ")) > 0){ $name_banned = '1'; }else {$name_banned = '0';} if ($name_banned == 1) continue; //исключаем забаненных if (in_array($row['0'], array(1))) continue; //исключаем пользователя с Id=1 echo '<tr>'; echo '<td align="left">'; echo '<b title="Логин">'.$row["1"].'</b> - <span title="Id">'.$row["0"].'</span><br/>'; echo '</td>'; echo '</tr>'; } } echo '</table><br/>'; universal_link_bar($count, $page, $_SERVER['PHP_SELF'], $perpage, 10, '?page=', ""); }else{ echo 'Пользователей не найдено.'; } ?> В принципе пользователей исключить получается, но есть проблема. На каждой странице отображается разное количество пользователей. Т.е. не 20, а за вычетом забаненных. Например на одной странице 15, на другой 18, на 3 -12. Везде по разному. Помогите понять в чем дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 12:17:33 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Вопросы по PHP задают в форуме по PHP. А тут раздел по MySQL, и этот PHP-хлам мало кому нужен... bocharov56в чем дело. Вот странно... ты берёшь 20 записей, выкидываешь из них неподходящие... совершенно непонятно, какого хрена их получается каждый раз по-разному на странице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 12:49:07 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Если я разместил вопрос не в том месте, то прошу модераторов перенести его. Просто у меня в коде и php и mysql присутствует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 12:52:36 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Задавая вопрос по MySQL, следует показывать только SQL-запрос, причём в том виде, в каком он уходит на сервер, а не PHP-код, который его формирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 12:57:28 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
bocharov56Просто у меня в коде и php и mysql присутствует.Вы определитесь каким именно средствами будете решать задачу - с помощью PHP или SQL. Соответственно, код должен быть на этом языке. bocharov56Есть таблица с пользователями tb_users в которой прописаны id , username . Есть еще одна таблица bannedUsers , в которой отображаются забаненные пользователи из таблицы tb_users. В таблице bannedUsers прописаны id и name . Условие: id в обеих таблицах могут как совпадать, так и отличаться . Нужно вывести id и username пользователей из tb_users, но при этом исключить тех, что указаны в bannedUsers. Также из таблицы tb_users необходимо исключить пользователя с id=1 или username=Admin.Связь между таблицами, как я понимаю, по username? Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 13:00:28 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
miksoft, В таблице tb_users надо брать username и проверить есть ли в bannedUsers такое имя? Если есть то, его из выдачи исключаем, если нету, то проверяем следующего. На каком языке надо делать? Так тут я не совсем грамотный человек. Только пытаюсь разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 13:04:19 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
bocharov56В таблице tb_users надо брать username и проверить есть ли в bannedUsers такое имя? Если есть то, его из выдачи исключаем, если нету, то проверяем следующего.Именно для этого запрос я и написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 13:13:09 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
miksoft, Щас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 13:15:16 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
miksoft, Спасибо большое, немного адаптировал под свою таблицу (просто у меня там больше столбцов) и все заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2015, 14:37:48 |
|
||
|
Помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Я не пойму что за ошибка при вводе данных. Пишу через командную строку Mysql mysql> insert into raskleika ('ул. Ленина 10', 'расклейка', '02.08.2015', 'примечание'); ERROR 1064 (42000): 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 ''ул. Ленина 10', 'расклейка', '02.08.2015', 'примечание')' at line 1 В чем тут ошибка? У всех полей тип char, 50 символов. Еще в программе Mysql Workbench в этой же базе данных такой запрос делал: select * from omkc; И такое сообщение было: table omkc.omkc doesn't exists Отчего эти ошибки? И как правильно ввести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2015, 15:07:05 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=125&tid=1832725]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 308ms |

| 0 / 0 |
