Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как можно схетрить 
V
    Опции темы
Predator199
  Дата 19.11.2012, 12:56 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Добрый день. Интересует следующий вопрос. Через цикл foreach, вытаскиваю название игры. Нужно по каждой игре подсчитать количество серверов. Интересует , можно ли подсчитать количество серверов каждой игры , при помощи 1 запроса, а не 1 игра-1 запрос?
PM MAIL   Вверх
Guedda
Дата 19.11.2012, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



А подробнее можно? Что именно ты перебираешь в foreach


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Aliance
Дата 19.11.2012, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Можно и даже нужно.
Только лучше не названия, а IDшники.
Собираем массив названий (IDшников) и используем его для условия IN.
PM MAIL WWW ICQ Skype   Вверх
Arantir
Дата 19.11.2012, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Predator199, заметил, что у вас каждая тема - это попытка решить одну и ту же проблему - обработка данных с ~1000 удаленных серверов. Как нибудь обобщите систематизируйте все. А то любая мелочь - новая тема. В интернете существует много интересных статей на темы высоконагруженных серверов или способов быстрой обработки множества запросов. Но не все решается через php в таком случае.

Ну и к делу... А вы не пробовали
Код

SELECT `name`, COUNT(`name`) FROM `servers` GROP BY `name`;

Вам вернется результат вроде:
Код

+---------+---------------+
| name    | count(`name`) |
+---------+---------------+
| server1 |             2 |
| server1 |             5 |
| server3 |             3 |
+---------+---------------+


И всего-лишь один запрос. А дальше через foreach, и это будет уже будет просто обработка локальной переменной (массива).

Это сообщение отредактировал(а) Arantir - 19.11.2012, 14:13


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Fortop
Дата 19.11.2012, 14:52 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Predator199,  у меня вопрос.
Когда вы научитесь пользоваться хотя бы проверкой орфографии?

Она у вас реально ужасная.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Predator199
  Дата 19.11.2012, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Arantir, Спс.
Скажите или скиньте статью о там как разобрать такой массив:
[35] => stdClass Object ( [type] => ut2004 [count(id)] => 1 ) [36] => stdClass Object ( [type] => zps [count(id)] => 1 ) )


Это сообщение отредактировал(а) Predator199 - 19.11.2012, 15:14
PM MAIL   Вверх
Aliance
Дата 19.11.2012, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Чтобы не было count(id) используй alias:
Код

SELECT FUNC(`FIELD`) AS `ALIAS` FROM `TABLE`;


Код

// [35] => stdClass Object ( [type] => ut2004 [count(id)] => 1 ) [36] => stdClass Object ( [type] => zps [count(id)] => 1 ) )
$arr = array();

$arr[35] = new stdClass;
$arr[35]->type = 'ut2004';
$arr[35]->count = '1';

$arr[36] = new stdClass;
$arr[36]->type = 'zps';
$arr[36]->count = '1';

foreach ($arr as $_arr) {
    echo '<p>type: '.$_arr->type.'</p>';
    echo '<p>count: '.$_arr->count.'</p>';
}


Вообще если возникают такого рода вопросы, я бы всерьез задумался своим ли я делом занимаюсь.
PM MAIL WWW ICQ Skype   Вверх
Predator199
  Дата 19.11.2012, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Спасибо. На самом деле я автомеханик=), в последнее время заинтересовался программированием. И начал потихоньку вникать=).

PM MAIL   Вверх
MoLeX
Дата 19.11.2012, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Predator199 @  19.11.2012,  15:40 Найти цитируемый пост)
И начал потихоньку вникать=).

книжку бы купили


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Sanchezzz
Дата 19.11.2012, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Цитата

 На самом деле я автомеханик=)

Привет коллега  smile 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Arantir
Дата 19.11.2012, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(Aliance @  19.11.2012,  14:33 Найти цитируемый пост)
Вообще если возникают такого рода вопросы, я бы всерьез задумался своим ли я делом занимаюсь. 
Не все посетители форума зарабатывают на жизнь тем, о чем тут спрашивают =)
Я люблю растения, у меня на всех окнах они. И почитываю литературу по уходу за ними. Но я никогда бы не стал зарабатывать на жизнь разведением комнатных растений...

Цитата(Predator199 @  19.11.2012,  14:14 Найти цитируемый пост)
Скажите или скиньте статью о там как разобрать такой массив:
[35] => stdClass Object ( [type] => ut2004 [count(id)] => 1 ) [36] => stdClass Object ( [type] => zps [count(id)] => 1 ) )
Хотя это не касается вопроса непосредственно, но честно вам говорю, что в большинстве случаев проблемы можно решить до того, как они появятся. Например, перед созданием структуры хранения данных надо подумать, удобно ли потом будет их в таком виде обрабатывать.
Впрочем, может ваш вариант для вашего случая оптимален, судить не буду. Но все же стоить иметь ввиду =) В программировании существует множество по истине элегантных и в то же время простейших решений.

Это сообщение отредактировал(а) Arantir - 19.11.2012, 18:27


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.