Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Профиль
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Профиль

Страниц (1): [1]
 

1. maragon - 15 Июня, 2011 - 19:30:12 - перейти к сообщению
Интересует вопросс..
Есть пользователи, данные, фото и прочее в бд.
Как можно вытащить, точнее слепить % зполнения профиля?
У кого есть зарисовки?
(как делать? вытащить все пол и проферять - заполнено-но (да + %), нет = 0)
как то так? Закатив глазки
2. Slavenin - 15 Июня, 2011 - 19:47:24 - перейти к сообщению
ну да, вытаскиваешь все поля считаешь их количество и вычисляешь процент об общего числа полей
3. maragon - 15 Июня, 2011 - 20:09:01 - перейти к сообщению
уу
Цитата:
и вычисляешь процент об общего числа полей
а в примере можно?
4. Платинум - 15 Июня, 2011 - 20:10:35 - перейти к сообщению
ну... определяеш процент, сколько даеш % за фото, потом сколько % за инфу о себе, ну итд... потом смотриш, что заполнено и складываеш %
5. DeepVarvar - 15 Июня, 2011 - 20:16:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $fields = array("id" => 1,"name" => "Вася","age" => "","sex" = > "");
  2. $ratstep = (int)(100/count($fields)); // шаг 25 для 4 полей
  3. $my = 0;
  4. foreach ($fields as $field) if ($field != "") $my++;
  5. $myrating = $my*$ratstep;
  6. echo "Страница заполнена на $myrating %"; // 50%
6. Slavenin - 15 Июня, 2011 - 21:01:56 - перейти к сообщению
можно по полдьзователю вытащить процент заполнения анкеты

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2. (case
  3. when login IS NULL then 0 else 10
  4. end) +
  5. (case
  6. when password IS NULL then 0 else 10
  7. end) +
  8. (case
  9. when eMail IS NULL then 0 else 10
  10. end) AS summa
  11. FROM tUsers


и так аналогично прописать для каждого поля, в результате у тебя будет табличка с процентом заполнения профиля
7. Tmin10 - 15 Июня, 2011 - 22:24:13 - перейти к сообщению
Тут нужно смотреть на саму базу, распределять проценты...
Можно ввести допустим 10% за инфу о себе и оценивать размер введённого текста, убрав все пробелы и знаки препинания.
8. DeepVarvar - 15 Июня, 2011 - 22:27:04 - перейти к сообщению
Slavenin ваш пример замороченнее тем, что если изменится кол-во полей, придется переписывать запрос..
В моем же случае уже полученные одним запросом данные профиля обрабатываются на месте.
Причем количество полей роли не играет...
9. maragon - 15 Июня, 2011 - 22:38:29 - перейти к сообщению
Ух, спасибо всез за советы. Буду пробывать.
Массовые задумки Ха-ха
10. Slavenin - 16 Июня, 2011 - 09:07:16 - перейти к сообщению
DeepVarvar пишет:
Slavenin ваш пример замороченнее тем, что если изменится кол-во полей, придется переписывать запрос..
В моем же случае уже полученные одним запросом данные профиля обрабатываются на месте.
Причем количество полей роли не играет...


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

 

Powered by ExBB FM 1.0 RC1