Jump to content

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


Alexey

Recommended Posts

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

Link to comment

@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 Семен
Link to comment
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 я хочу сделать вот так. Может не совсем правильно объясните пожалуйста как лучше, а если  можете то код напишет, а то у меня с такими данными проблема 

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

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

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

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

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

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

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

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

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

Link to comment

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

  • Upvote 1
Link to comment
3 часа назад, KirKMS сказал:

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

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

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

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

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

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

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

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

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

Link to comment

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 

 

wf_hab_1.png

wf_hab_2.png

  • Like 1
Link to comment
1 час назад, Alexey сказал:

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

 

 

wf_hab_1.png

wf_hab_2.png

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

Link to comment

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

cmstool_3.png

cmstool_1.png

cmstool_2.png

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...