Задача рекомендовать фильм пользователю.

Pavel666

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

PHP:
  1. <?
  2.  
  3. $comedy = array(«Пьяный мастер»,«Один дома»,«Факеры»,«Американский пирог»,«Одиночки»,«Блондинка в законе»,«Мастер3»,«Спящий в сиетле»);
  4. $boy = array(«Скалалаз»,«Терминатор»,«Бои с тенью»,«Разборка»);
  5. $fan = array(«Беглец»,«Бегущий человек»,«Пришельцы»);
  6. $horor = array(«Фредди против Джейсона»,«Кошмар на ул.Вязова»,«Экзарцист»);
  7.  
  8.  
  9.  
  10.  
  11. if($_POST[‘send’]){
  12. $sel = $_POST[‘select’];
  13. switch ($sel==«Комедия»){
  14. case (shuffle($comedy)):
  15. echo $comedy[0];
  16. echo «<br />»;
  17. echo $comedy[1];
  18. break;
  19. }
  20. }
  21.  
  22. if($_POST[‘send’]){
  23. $sel = $_POST[‘select’];
  24. switch ($sel==«Боевик»){
  25. case (shuffle($boy)):
  26. echo $boy[0];
  27. break;
  28. }
  29. }
  30. if($_POST[‘send’]){
  31. $sel = $_POST[‘select’];
  32. switch ($sel==«Фантастика»){
  33. case (shuffle($fan)):
  34. echo $fan[0];
  35. break;
  36. }
  37. }
  38.  
  39.  
  40. if($_POST[‘send’]){
  41. $sel = $_POST[‘select’];
  42. switch ($sel==«Ужасы»){
  43. case (shuffle($horor)):
  44. echo $horor[0];
  45. break;
  46. }
  47. }
  48.  
  49. ?>
  50. <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «[URL]http://www.w3.org/TR/html4/loose.dtd[/URL]»>
  51. <html>
  52. <head>
  53. <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
  54. <title>Untitled Document</title>
  55. </head>
  56.  
  57. <body>
  58. <h2><b>Выбрать жанр</b></h2>
  59. <form name = «myform» action=»kino.php» method=»post»>
  60. <table>
  61.  <tr>
  62.    <td>Name</td>
  63.     <td>
  64.     <input type=»text» name=»select»>
  65.     </td>
  66.  </tr>
  67. <tr>
  68. <td>
  69. <input type=»submit» value=»Send» name=»send»>
  70. </td>
  71. </tr>
  72. </table>
  73.  
  74.  
  75. </form>
  76.  
  77. </body>
  78. </html>

От модератора: Оформляй код кнопкой </>

 

Artur_hopf

PHP:
  1. <?php
  2. $array = [
  3.     ‘comedy’ => [«Пьяный мастер»,«Один дома»,«Факеры»,«Американский пирог»,«Одиночки»,«Блондинка в законе»,«Мастер3»,«Спящий в сиетле»],
  4.     ‘boy’ => [«Скалалаз»,«Терминатор»,«Бои с тенью»,«Разборка»],
  5.     ‘fan’ => [«Беглец»,«Бегущий человек»,«Пришельцы»],
  6.     ‘horor’ => [«Фредди против Джейсона»,«Кошмар на ул.Вязова»,«Экзарцист»]
  7. ];
  8.  
  9.  
  10. if( isset( $_POST[‘select’], $array[$_POST[‘select’]] ) )
  11. {
  12.     foreach( $array[ $_POST[‘select’] ] as $item )
  13.     {
  14.         echo $item . PHP_EOL;
  15.     }
  16. }
 

Artur_hopf

PHP:
  1. <?php
  2. $array = [
  3.     ‘Комедия’ => [«Пьяный мастер»,«Один дома»,«Факеры»,«Американский пирог»,«Одиночки»,«Блондинка в законе»,«Мастер3»,«Спящий в сиетле»],
  4.     ‘Боевик’ => [«Скалалаз»,«Терминатор»,«Бои с тенью»,«Разборка»],
  5.     ‘Фантастика’ => [«Беглец»,«Бегущий человек»,«Пришельцы»],
  6.     ‘Ужасы’ => [«Фредди против Джейсона»,«Кошмар на ул.Вязова»,«Экзарцист»]
  7. ];
  8.  
  9. $option = »;
  10.  
  11. foreach( $array as $key => $item )
  12. {
  13.     $option .= «<option>{$key}</option>»;
  14. }
  15.  
  16. $select = «<select name=»select»>{$option}</select>»;
  17.  
  18. $films = »;
  19.  
  20. if( isset( $_POST[‘select’], $array[$_POST[‘select’]] ) )
  21. {
  22.     foreach( $array[ $_POST[‘select’] ] as $item )
  23.     {
  24.         $films .= $item . ‘<br>’;
  25.     }
  26. }
  27. ?>
  28. <!DOCTYPE HTML>
  29. <html>
  30. <head>
  31. <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>
  32. <title>Untitled Document</title>
  33. </head>
  34. <body>
  35. <h2><b>Выбрать жанр</b></h2>
  36. <form name=»myform» action=»» method=»post»>
  37.     <table>
  38.         <tr>
  39.         <td>Name</td>
  40.             <td>
  41.             <?=$select?>
  42.             </td>
  43.         </tr>
  44.         <tr>
  45.         <td>
  46.         <input type=»submit» value=»Send» name=»send»>
  47.         </td>
  48.         </tr>
  49.     </table>
  50. </form>
  51. <?=$films?>
  52. </body>
  53. </html>
 

Pavel666

Спасибо.а первоначальный код чем плох?

 

MouseZver

roboformation

1) Форматирование некоторых участков php-кода (меньшее из зол)
2) Нет нормальной проверки пользовательских данных
3) Мало смысла плодить переменные для каждого массива, когда можно похожую информацию запихнуть в один двумерный массив (вам это показали). Так улучшается навигация
4) switch-блоки некорректно использованы
5) Перемешивать массив необязательно, достаточно получить рандомный ключ массива
https://www.php.net/manual/ru/function.array-rand.php
Ну и там по мелочи

 

Pavel666

Всем спасибо за ответы.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *