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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Неизвестное число переменных

 PHP.SU

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


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

> Без описания
Khristina
Отправлено: 21 Июля, 2011 - 17:50:06
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Всем привет. У меня вопрос следующего характера. Пишу программу где пользователь вводит
шаг1 - количество учеников и кол-во предметов
шаг2- имена учеников и предметов
шаг 3 - оценки всех учеников по всем предметамб
шаг 4- хочу каким-то образом вывести рейтинг. но вот в чем проблемма, я не знаю сколько предметов введет пользователь, не знаю как суммировать все оценки одного ученика по нескольким предметам. так как не знаю сколько там массивов будет.
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Июля, 2011 - 18:06:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Khristina пишет:
рейтинг

Относительно кого и чего?
 
 Top
Khristina
Отправлено: 21 Июля, 2011 - 18:11:49
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Смотрите код.

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3.   <title></title>
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. if (isset($_POST['post1'])and $_POST['stud-number']>1 and $_POST['stud-number']<=200 )
  9. {
  10. echo "<form method='POST' action='rate.php'><input type='hidden' name='post2'>
  11. <p><b><u>Введите фамилии, имя учеников</u></b></p><table>";
  12. for ($i =1;$i <= $_POST['stud-number'];$i++)
  13. {echo "<tr><td><input type='text' name='studname[]'></td></tr>";}
  14. echo "</table><p><b><u>Введите названия предметов</u></b></p><table>";
  15. for ($i=1;$i<=$_POST['subject-number'];$i++)
  16. {echo "<tr><td><input type='text' name='subjectname[]'></td></tr>";}
  17. echo "</tr><table>";
  18. echo "<p><input type='submit' value='следующий шаг >>>'></p>";
  19. }
  20.  
  21. elseif (isset($_POST['post2']))
  22. {
  23. echo "<form method='POST' action='rate.php'><input type='hidden' name='post3'>";
  24. $n=count($_POST['studname']);
  25. echo "<form method='POST' action='rate.php'><input type='text' name='n' value='$n'>";
  26. for ($i=0;$i<$n;$i++)
  27. {
  28. echo "<p>Введите оценки с предмета ". $_POST[subjectname][$i]."</p>";
  29. $r=$_POST['studname'];
  30. while (list(,$name)=each($r))
  31. {echo "$name: -";
  32. echo"<select name='marks[]'>";
  33. $marks =array (1,2,3,4,5);
  34. foreach ($marks as $a=>$b)
  35. {echo "<option>$b</option>";}
  36. echo "</select><br><input type='hidden' name='stud[]' value='$name'></td>";
  37. }
  38. }
  39. echo "<input type='submit' value='следующий шаг >>>'></form>";
  40. }
  41.  
  42. elseif (isset($_POST['post3']))
  43. {echo "Вот тут я хочу видеть рейтинг начиная с самого успешного ученика, то есть того, у которого сумма всех оценок - самое большое число и так далее.";}
  44.  
  45. else
  46. {
  47. if (isset($_POST['post1']) and $_POST['stud-number']<=1 or $_POST['stud-number']>200) {echo "Введите число учащихся в цифровом формате больше
  48. одного и меньше двухсот!<form method='POST' action='rate.php'><br><input type='submit' value='вернуться >>>'>
  49. <input type='hidden' name='stud-number' value='2'>
  50. </form>";}
  51. else {?>
  52. <p><b><u>Здравствуйте, Вас приветствует программа составления рейтинга учащихся</u></b></p>
  53. <form method='POST' action='rate.php'>
  54. <input type='hidden' name='post1'>
  55. <p>Введите кол-во учащихся для которых будет составлен рейтинг</p>
  56. <input type='text' name='stud-number'>
  57. <p>Введите кол-во предметов по которым будет составлен рейтинг</p>
  58. <input type='text' name='subject-number'><br><br>
  59. <input type='submit' value='следующий шаг >>>'>
  60. </form>
  61. <?}}?>
  62.  
  63. </body>
  64.  
  65. </html>
 
 Top
grefon
Отправлено: 21 Июля, 2011 - 20:23:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Вместо этого:
PHP:
скопировать код в буфер обмена
  1. echo "Вот тут я хочу видеть рейтинг начиная с самого успешного ученика, то есть того, у которого сумма всех оценок - самое большое число и так далее.";


Поставьте это:
PHP:
скопировать код в буфер обмена
  1.  
  2. $temp = array();
  3. for($i=0; $i<count($_POST['stud']); $i++) {
  4.         if(isset($temp[$_POST['stud'][$i]])) {
  5.                 $temp[$_POST['stud'][$i]] = $temp[$_POST['stud'][$i]] + $_POST['marks'][$i];
  6.         } else {
  7.                 $temp[$_POST['stud'][$i]] = $_POST['marks'][$i];
  8.         }
  9. }
  10. arsort($temp);
  11.  
  12. foreach ($temp as $key => $val)
  13. echo $key.' - '.$val.'<br />';
  14.  


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
Khristina
Отправлено: 22 Июля, 2011 - 16:31:14
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Спасибо большое. До этого я уже тоже догадалась. Хотелось бы еще как-то выводить не только фамилии и общую сумму оценок а отдельно оценки по предметам.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB