PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (17): « 1 2 3 4 [5] 6 7 8 9 ... » В конец

> Найдено сообщений: 248
ridvik Отправлено: 30 Июня, 2013 - 16:53:31 • Тема: Мультизагрузка файлов на сервер и их сортировка • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 42
Добрый вечер. Озадачился такой задачей. Вместо того, что бы под каждый тип не делать кнопку, хочу попробовать заливать все с одной кнопки, но что бы потом при загрузке они на сайте уже у меня закидывались в разные папки. То есть. картинки в одну, фильмы в другую, лог файлы в третью и т.д. Народ, подскажите пожалуйста как это сделать?? Заранее благодарен за любую подсказку, помощь.
ridvik Отправлено: 19 Июня, 2013 - 10:25:16 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
Ну вообщем все оказалось намного проще)))
Вот собственно рабочий запрос:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $result = $main->db->sql_query("SELECT u.*, t.*, (SELECT COUNT(id) FROM `".PLAYERS."` as p  WHERE `status_time`>NOW() - INTERVAL 5 MINUTE AND p.tid=t.id) as count FROM `".USERS."` as u JOIN `".TEAMS."` as t ON (u.uid=t.id_cl) ORDER BY id");
ridvik Отправлено: 14 Июня, 2013 - 19:33:46 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
EuGen пишет:
Мне правда кажется, что Вы шутите. Ну да ладно, я довольно много усилий приложил, чтобы Вы написали запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT p.field0, p.field1, u.field3, u.field4.* FROM `".PLAYERS."` AS p
  2. LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid)

- синтаксис таков. При этом среди field0, field1, .. не должно встречаться полей с одинаковыми названиями, то есть поле можно выбрать только из одной таблицы - либо же, если необходимо из обеих, требуется определить разные альясы.


Вроде как уже что-то проясняется)) Сейчас попробую)))
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT t.*, u.uid, u.user_name FROM ".TEAMS." AS t
  2. JOIN ".USERS." AS u ON (t.id_cl=u.uid)
  3. LEFT JOIN (SELECT p.uid, u.uid FROM `".PLAYERS."` AS p
  4. LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid)
  5. WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE)
  6. AND `tid`=12) pl ON (pl.tid = t.id)



Ну тут по любому название полей одинаковые, только альясы разные.... что не так-то?? опять эта ошибка((((
ridvik Отправлено: 14 Июня, 2013 - 19:23:37 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
Т.е. в подзапросе не надо делать LEFT JOIN?)
ridvik Отправлено: 14 Июня, 2013 - 18:51:47 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
EuGen пишет:
Вот и укажите в подзапросе из какой таблицы выбираете, то есть p.uid или u.uid



как?))))
ridvik Отправлено: 14 Июня, 2013 - 18:02:09 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
EuGen пишет:
Перечислением полей вместо указания * при выборке, очевидно. При этом в списке указать поле uid только из одной таблицы, той, из которой нужно по логике Вашего запроса.


так он у меня в обоих таблицах, я так поле назвал, что бы не путаться))) что же теперь делать?))) правда, туплю и не пойму что и как)))
ridvik Отправлено: 14 Июня, 2013 - 17:48:09 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
EuGen пишет:
ridvik пишет:
LEFT JOIN (SELECT p.*, u.* FROM `".PLAYERS."` AS p
LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid)

Вот Ваш подзапрос. в таблицах с альясами p и u присутствует одинаковое поле по названию (а именно uid) потому СУБД не может определить, из какой таблицы возвращать это поле в основной запрос. Подставить я ничего не могу, так как я, как и СУБД, не могу догадываться, из какой таблицы Вам это поле нужно. На первый взгляд подойдёт из любой.


так, ну это я понял. а как же мне тогда выводить то значение?)) извините меня, но что-то реально туплю(((
ridvik Отправлено: 14 Июня, 2013 - 15:35:33 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
EuGen пишет:
ridvik
Потому что не указано, из какой таблицы брать поле. При выборке всех полей (через знак *) в подзапросе неясно, какую из них возвращать во внешний запрос, поскольку указанное в ошибке поле присутствует более чем в 1-й таблице. Укажите явно.


не совсем вас понял(( не могли бы сами подставить и потом мне указать?
CODE (htmlphp):
скопировать код в буфер обмена
  1. function teams_list () {
  2. global $main, $tpl_create;
  3. /*echo "<select onchange='ajax_obj(this.value);'>
  4.                 <option value='0'>Все</option>
  5.                 <option value='1'>1 класс</option>
  6.                 <option value='2'>2 класс</option>
  7. </select>
  8. <div id='ajax_obj'></div>
  9. <div id='ajax_obj2'>";*/
  10. echo "";
  11. $result = $main->db->sql_query("SELECT p.*, u.uid, u.user_name FROM ".TEAMS." as p JOIN ".USERS." as u ON (p.id_cl=u.uid)");
  12. /*$result = $main->db->sql_query("SELECT t.*, u.* FROM ".TEAMS." AS t
  13. JOIN ".USERS." AS u ON (t.id_cl=u.uid)
  14. LEFT JOIN (SELECT p.*, u.* FROM `".PLAYERS."` AS p
  15. LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid)
  16. WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE)
  17. AND `tid`=12) pl ON (pl.tid = t.tid)");*/
  18. open();
  19. $i=1;
  20. $row = "row1";
  21. echo "<table cellspacing='1' class='table3' width='100%'><tr align='center'><td width='20px' align='center'><b>#</b></td><td class='tour'>{$main->lang['name']}</td><td class='tour'>{$main->lang['manager']}</td><td class='tour'>{$main->lang['reg_team2']}</td><td class='tour'>{$main->lang['level']}</td><td class='tour'>{$main->lang['rating']}</td><td class='tour'></td></tr>";
  22. while ($r = $main->db->sql_fetchrow($result)){
  23. echo "<tr class='{$row}' align='center'>
  24. <td width='20px' align='center'>{$i}</td>
  25. <td class='tour2'><a href='".$main->url(array("module" => $_GET['module'], "do" => "view", "id" => $r['id']))."'>{$r['name']}</a></td>
  26. <td class='tour2'><a href='index.php?module=account&do=user&id={$r['id_cl']}' id='userinfo_{$row['id_cl']}' class='user_info'>{$r['user_name']}</a></td>
  27. <td class='tour2'>".user_format_date($r['date_reg'])."</td>
  28. <td class='tour2'>{$r['level']}</td>
  29. <td class='tour2'></td>
  30. <td class='tour2'></td></tr>";
  31. $row = ($row=="row1") ? "row2" : "row1";
  32. $i++;
  33. }
  34. echo "</table>";
  35. close();
  36. echo "</div>
  37. <script type='text/javascript'>
  38. function getXmlHttp(){
  39.  var xmlhttp;
  40.  try {
  41.    xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
  42.  } catch (e) {
  43.    try {
  44.      xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
  45.    } catch (E) {
  46.      xmlhttp = false;
  47.    }
  48.  }
  49.  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  50.    xmlhttp = new XMLHttpRequest();
  51.  }
  52.  return xmlhttp;
  53. }
  54.  
  55. // javascript-код голосования из примера
  56. function ajax_obj(value) {
  57.        // создать объект для запроса к серверу
  58.        var req = getXmlHttp()
  59.        req.onreadystatechange = function() {
  60.        // onreadystatechange активируется при получении ответа сервера
  61.                if (req.readyState == 4) {
  62.                // если запрос закончил выполняться
  63.                        if(req.status == 200) {
  64.                                // если статус 200 (ОК) - выдать ответ пользователю
  65.                                document.getElementById('ajax_obj').innerHTML = req.responseText;
  66.                                                                 document.getElementById('ajax_obj2').innerHTML = '';
  67.                        }
  68.                        // тут можно добавить else с обработкой ошибок запроса
  69.                }
  70.        }
  71.  
  72.    // задать адрес подключения
  73.        req.open('GET', 'ajax.php?do=teams&obj=' + value, true);
  74.  
  75.        // объект запроса подготовлен: указан адрес и создана функция onreadystatechange
  76.        // для обработки ответа сервера
  77.        req.send(null);  // отослать запрос
  78. }
  79. </script>";
  80. }


Вот собственно весь код, в последнем столбике хотелось бы выводить колличество онлайн, т.е. по условию WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE)
ridvik Отправлено: 14 Июня, 2013 - 13:41:39 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
Что тут не так?
CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT t.*, u.* FROM ".TEAMS." AS t
  2. JOIN ".USERS." AS u ON (t.id_cl=u.uid)
  3. LEFT JOIN (SELECT p.*, u.* FROM `".PLAYERS."` AS p
  4. LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid)
  5. WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE)
  6. AND `tid`=12) pl ON (pl.tid = t.tid)


выходит вот такая ошибка: Duplicate column name 'uid':
ridvik Отправлено: 10 Июня, 2013 - 07:56:19 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
biperch пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT p.*, u.uid, u.user_name FROM ".TEAMS." AS p
  3. JOIN ".USERS." AS u ON (p.id_cl=u.uid)
  4. LEFT JOIN (SELECT p.*, u.* FROM `".PLAYERS."` AS p LEFT JOIN `".USERS."` AS u ON (p.uid=u.uid) WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE) AND `tid`=12) pl N pl.tid = p.tid
  5.  
  6.  


примерно так, но это просто пример, только я полей не знаю и какой признак того что клиент онлан


спасибо, днем попробую, а признак то что он онлайн это вот status_time`>NOW() - INTERVAL 5 MINUTE
ridvik Отправлено: 08 Июня, 2013 - 13:38:05 • Тема: 2 запроса в одном • Форум: SQL и Архитектура БД

Ответов: 17
Просмотров: 113
Добрый день участникам портала. Столкнулся с проблемой, как решить не знаю( Нужно вывысти таблицу данных из бд, но вот в чем проблема:
Данные беру вот таким запросом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $result = $main->db->sql_query("SELECT p.*, u.uid, u.user_name FROM ".TEAMS." as p JOIN ".USERS." as u ON (p.id_cl=u.uid)");

С ним все гуд, но проблема заключается в том, что в последнем столбце надо вывести число людей, которые онлайн в данный момент.
Если смотреть по отдельности, а не списком, то я это делаю вот таким запросом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $result = $main->db->sql_query("SELECT p.*, u.* FROM `".PLAYERS."` as p LEFT JOIN `".USERS."` as u ON (p.uid=u.uid) WHERE (`status_time`>NOW() - INTERVAL 5 MINUTE) AND `tid`={$_GET['id']}");

Так вот теперь вроде как сам вопрос, как объединить эти два запроса, что бы выводились все записи и количество онлайн каждой???
ridvik Отправлено: 28 Мая, 2013 - 16:26:58 • Тема: Помогите с датой в sql запросе • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 32
improbable пишет:
ridvik пишет:
Вот такая ошибка выходит
CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected ';' in C:\EleanorServ\www\localhost\hooks\teams\teams.other.php on line 48


48 строка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT * FROM `dynamit_players` WHERE `status_time`>NOW() - INTERVAL 5 MINUTE");



что не так? вроде банальное же копирование должно быть?)

Перед ещё одну закрывающую круглую скобку

и правда)) чет аж стремно самому за такую ошибку((( поставил скобку, вроде работает))
ridvik Отправлено: 28 Мая, 2013 - 15:30:37 • Тема: Помогите с датой в sql запросе • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 32
Вот такая ошибка выходит
CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected ';' in C:\EleanorServ\www\localhost\hooks\teams\teams.other.php on line 48


48 строка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT * FROM `dynamit_players` WHERE `status_time`>NOW() - INTERVAL 5 MINUTE");



что не так? вроде банальное же копирование должно быть?)
ridvik Отправлено: 28 Мая, 2013 - 07:47:48 • Тема: Помогите с датой в sql запросе • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 32
Всем доброе утро. Собственно нужна помощь по выборке из бд)) Нужно в таблице бд отыскать строки, где разница со временем больше 5 минут, либо меньше. Смысл вот в чем: пользователь каждые 5 мин обновляет время допустим в таблице test в поле status_time. И нужно вот из этой таблицы посчитать. у скольких пользователей дата, занесенная в бд, была занесена не больше 5 минут назад. Типо сессия такая небольшая. на уровне пхп я еще вроде могу сделать, но как я понял тут нужно на уровне sql запроса. Помогите пожалуйста. Вот что я имею в данный момент:
PHP:
скопировать код в буфер обмена
  1. // Функция расчета игроков онлайн в команде
  2. function teams_players_online () {
  3. global $main;
  4. try {
  5.         teams_checkteamid ();
  6.         list($id,$time) = $main->db->sql_fetchrow($main->db->sql_query("SELECT id,status_time FROM ".PLAYERS." WHERE tid={$_GET['id']}"));
  7.         $date = date("Y-m-d ");
  8.         $date .= date("H")+3;
  9.         $date .= date(":i:s");
  10.         $s = $date - $time;
  11.         //
  12.         $now = strtotime("$date");
  13.         $date2 = strtotime("$time");
  14.         $timeU = $now - $date2;
  15.         $min = 60;
  16.         $hour = 60 * 60;
  17.         $day = 60 * 60 * 24;
  18.         //     
  19.         $r_days = floor ($timeU / $day);
  20.     $r_hours = floor (($timeU - ($r_days * $day))/$hour);
  21.     $r_min = floor (($timeU - ($r_days * $day) - ($r_hours * $hour))/$min);
  22.     $r_sec = (($timeU - ($r_days * $day) - ($r_hours * $hour) - ($r_min * $min)));
  23.         //
  24.         //return $r_days." Дней ".$r_hours." Часов ".$r_min." Минут ".$r_sec." Секунд";
  25.         //list($counts) = $main->db->sql_fetchrow($main->db->sql_query("SELECT COUNT(*) FROM ".PLAYERS)." WHERE $r_min > 5");
  26.                 If (($r_min > 5) OR ($r_hours > 0) OR ($r_days > 0)) return 'Offline';
  27.                 else return 'Online';
  28.         //
  29.         //return $date.' - '.$time.' = '.$s;
  30.        
  31.        
  32.         }
  33.                 catch(Exception $ex) {
  34.                 echo $ex->getMessage();
  35.         }
  36. }

Страниц (17): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB