Jump to content
Alexey

Нужна ваша помощь в PHP и SQL

Recommended Posts

Здравствуйте, нужна ваша помощь не могу реализовать 1 функцию. Хочу сделать что бы можно было выводить количество заданий всего, и количество выполненных. Пытался 3 способами, самый последний уже не получается, фото приложены ниже.
43rgd.thumb.png.5f91b468e3e4a0c3d01cb98bbccb4c67.png43rgd_1.thumb.png.487a4c0d99c46cb4765f930ba0df33cf.png

Share this post


Link to post

@Alexey  все просто, дока есть, гугл, яндекс.

полный говнокод, перепеши заново и в бд подругому сделай

Вот вариант, думаю ты понял

$user_id

$tasks = (все задачи юзера $user_id) 

$checkList = (кол-во задач юзера $user_id)

foreach($tasks as $row){
	$row['user'] - user
	$row['status'] - статус задачи
}

переменная $cnt лишняя, можно так - foreach($tasks as $key => $row) 

php.net и mysql.com

Edited by Семен

Share this post


Link to post
10 часов назад, Семен сказал:

@Alexey  все просто, дока есть, гугл, яндекс.

полный говнокод, перепеши заново и в бд подругому сделай

Вот вариант, думаю ты понял

$user_id

$tasks = (все задачи юзера $user_id) 

$checkList = (кол-во задач юзера $user_id)

foreach($tasks as $row){
	$row['user'] - user
	$row['status'] - статус задачи
}

переменная $cnt лишняя, можно так - foreach($tasks as $key => $row) 

php.net и mysql.com

Не совсем понятно как считать здания, например у нас есть 3 задания, если он выполнил задание то нужно сделать счётчик или запомнить

И если в он выполнил, то у него в запись #1 пишется его user_id я хочу сделать вот так. Может не совсем правильно объясните пожалуйста как лучше, а если  можете то код напишет, а то у меня с такими данными проблема 

Share this post


Link to post
7 часов назад, Alexey сказал:

Не совсем понятно как считать здания, например у нас есть 3 задания, если он выполнил задание то нужно сделать счётчик или запомнить

И если в он выполнил, то у него в запись #1 пишется его user_id я хочу сделать вот так. Может не совсем правильно объясните пожалуйста как лучше, а если  можете то код напишет, а то у меня с такими данными проблема 

В бд таблица: id, юзер, id задания,(название задания), статус.

Подсчитать колличество выплненных заданий: делаешь выборку по юзеру и статусу.

Share this post


Link to post
2 часа назад, Семен сказал:

В бд таблица: id, юзер, id задания,(название задания), статус.

Подсчитать колличество выплненных заданий: делаешь выборку по юзеру и статусу.

Это типо для каждого пользователя своё задание? 
если у меня будет например 100 человек, и 30 задание. Это придётся примерно 3000 записей делать. Не многовато будет?

Share this post


Link to post

Сделай новое поле типо status int(11) И добавляй туда чило. Где 1 это выполнено, где 2 выполняется и 3 новое задание.Потом сортируй вывод из бд типо SORT BY status = 1 или 2 или 3.Или ещё проще.Пиши функцию которая будет определять статус.И при запросе бд выводи число от 1 до 3 и функцией проверяй статус задания и выводи.

  • Upvote 1

Share this post


Link to post
3 часа назад, KirKMS сказал:

Сделай новое поле типо status int(11) И добавляй туда чило. Где 1 это выполнено, где 2 выполняется и 3 новое задание.Потом сортируй вывод из бд типо SORT BY status = 1 или 2 или 3.Или ещё проще.Пиши функцию которая будет определять статус.И при запросе бд выводи число от 1 до 3 и функцией проверяй статус задания и выводи.

это понятно, получается у меня в таблице будет куча записей на 1 пользователя к примеру 30 заданий, значит 30 записей в таблице

А если будет куча игроков то записей будет много, либо может сделать так то по другому

P.S: Не могу понять логику для построения построения этой функции. 
сам вывод, который определяет выполнено или нет у меня есть. Мне нужно просто записывать, сколько пользователь выполнил заданий Определение выполнено и не выполнено у меня есть, а вот определять число выполненных заданий у игрока не могу реализовать 

Share this post


Link to post
6 часов назад, Alexey сказал:

это понятно, получается у меня в таблице будет куча записей на 1 пользователя к примеру 30 заданий, значит 30 записей в таблице

А если будет куча игроков то записей будет много, либо может сделать так то по другому

P.S: Не могу понять логику для построения построения этой функции. 
сам вывод, который определяет выполнено или нет у меня есть. Мне нужно просто записывать, сколько пользователь выполнил заданий Определение выполнено и не выполнено у меня есть, а вот определять число выполненных заданий у игрока не могу реализовать 

Еще вариант на каждого по одной записи, если заданий не больше + редис или мемкеш

Share this post


Link to post

Мне нужно просто записывать, сколько пользователь выполнил заданий Определение выполнено и не выполнено у меня есть, а вот определять число выполненных заданий у игрока не могу реализовать 

 

По user_list сортируй я так понял там заносится айди пользователя который выполнил задание можно спокойно по 

user_list можно реализовать все 

С помощью explode убираем | и спокойно получаем айди

Edited by PHPSocial

Share this post


Link to post
7 часов назад, PHPSocial сказал:

Мне нужно просто записывать, сколько пользователь выполнил заданий Определение выполнено и не выполнено у меня есть, а вот определять число выполненных заданий у игрока не могу реализовать 

 

По user_list сортируй я так понял там заносится айди пользователя который выполнил задание можно спокойно по 

user_list можно реализовать все 

С помощью explode убираем | и спокойно получаем айди

А допустим юзеров 100-10000 в  ячейке, что тогда? Строка максимум 4гб, так еще лишние подстроки с юзерами. При таком способе ростет лишняя память

Edited by Семен

Share this post


Link to post
10 часов назад, Семен сказал:

А допустим юзеров 100-10000 в  ячейке, что тогда? Строка максимум 4гб, так еще лишние подстроки с юзерами. При таком способе ростет лишняя память

Ну тогда на каждое задание юзера по строке по другому ни как

Share this post


Link to post
10 часов назад, Семен сказал:

А допустим юзеров 100-10000 в  ячейке, что тогда? Строка максимум 4гб, так еще лишние подстроки с юзерами. При таком способе ростет лишняя память

А если попробовать вот так: 
1 таблица - Игровые задания
2 таблица - Список игроков кто выполнил
Судя во всем вашим ответам это более правильное решение, чем мое записывать в одну строку id user'ов
Вот приложено 2 фото с таблицами, проверьте пожалуйста правильно ли сделал

 

 

wf_hab_1.png

wf_hab_2.png

  • Like 1

Share this post


Link to post
1 час назад, Alexey сказал:

А если попробовать вот так: 
1 таблица - Игровые задания
2 таблица - Список игроков кто выполнил
Судя во всем вашим ответам это более правильное решение, чем мое записывать в одну строку id user'ов
Вот приложено 2 фото с таблицами, проверьте пожалуйста правильно ли сделал

 

 

wf_hab_1.png

wf_hab_2.png

Нормально.И потом выводить из списков задания и пользователя который его выполнил итд

Share this post


Link to post

Вообще ничего не получается, не навижу эти массивы уже куча статей по всем типах массивов почитал, а толку 0
Прошу помочь написать код, в кратце расскажу что требуется.
Есть 2 таблицы, 1 таблица это "WF_TASKS" - список заданий в котором хранится еще и название приза и code продукта.
2 таблица это "WF_DONE" здесь хранятся списки игроков которые выполнили задание, здесь есть номер задания и время когда выполнили задание.
Мне нужно сделать так что бы я мог вывести список заданий по id tasks, а вторая таблица должна сортироваться что бы у каждого задания был статус, если пользователь его выполнил статус 1
Кому не сложно помогите написать код, + шаблонизатор смарти как то странно выводит символы либо 1 запись вместо нескольких 

cmstool_3.png

cmstool_1.png

cmstool_2.png

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×