За последние 24 часа нас посетил 17251 программист и 1688 роботов. Сейчас ищут 1270 программистов ...

Вывод на страницу формы

Тема в разделе "PHP и базы данных", создана пользователем Luchfan12, 17 дек 2015.

  1. Luchfan12

    Luchfan12 Новичок

    С нами с:
    19 ноя 2015
    Сообщения:
    10
    Симпатии:
    0
    Ребят, нужна помощь.
    Имеется список товаров, содержащихся в базе данных и выводящихся на сайт. Есть возможность вывода товаров по определенному году. Хочу реализовать следующее: когда вывожу на страницу список товаров по определенному году, необходимо чтобы была возможность снова выбирать год выпуска товара и опять же выводить список товаров. Как это реализовать? (естественно без дублирования кода).
    catalog.php
    Код (PHP):
    1. <?php 
    2. error_reporting(E_ALL ^ E_DEPRECATED);
    3. $user = 'root';
    4. $password = '';
    5. $db = 'test';
    6. mysql_connect("localhost",$user, $password) or die("Could not connect: ".mysql_error());
    7. mysql_select_db($db) or die("Could not select database:".mysql_error());
    8. ?>
    9. <?php
    10. function printData($data)
    11. {    
    12. echo "<tr>";    
    13. echo "<td>";
    14. echo "<img src='{$data['picture']}' width='200'/>";
    15. echo "</td>";
    16. echo "<td>";
    17. echo $data['title'];
    18. echo "</td>";
    19. echo "<td>";
    20. echo $data['price'];
    21. echo "</td>";
    22. echo "</tr>";    
    23. }
    24. ?>
    25. <table width="100%">
    26. <tr>
    27. <td><img src="logo.jpg" alt="Логотип"/> </td>
    28. <td><b style="font-size:50px;">Shop</b></td>
    29. </tr>
    30. <tr>
    31. <td>[url="index.html"] На главную [/url]</td>
    32. <td>[url="contact.html"] Контакты [/url]</td>
    33. </tr>
    34. </table>
    35. <div align="center">
    36. <?php
    37. $result_1 = mysql_query("SELECT DISTINCT grad_year FROM goods ORDER BY grad_year DESC");
    38. if ($result_1 == true) {
    39. echo "<form action ='catalog_data.php' method ='post'>";    
    40. echo "<select name='year_s'>";
    41. while ($grad = mysql_fetch_array($result_1)) {
    42. echo "<option>".$grad['grad_year']."</option>";    
    43. }
    44. echo "</select>";    
    45. }
    46. echo "</br>";
    47. echo "<input type='submit' name='submit' value='Отобразить'>";
    48. echo "</form>";
    49. ?>
    50. <table border="1">
    51. <?php
    52. $result = mysql_query('SELECT picture, title, price FROM goods');
    53. while ($row = mysql_fetch_array($result))
    54.     printData($row);
    55. ?>
    56. </table>
    57. </div>
    catalog_data.php (Страница где выводится таблица товаров согласно выбранному году)
    Код (PHP):
    1. <?php
    2. $connect = mysql_connect('localhost','root','') or die(mysql_error());
    3. if(isset($_POST['submit'])){
    4. echo "<p>Год выпуска товара:<b>".$_POST['year_s']."</b></p>";
    5. function printYear($year)
    6. {    
    7. echo "<tr>";    
    8. echo "<td>";
    9. echo "<img src='{$year['picture']}' width='200'/>";
    10. echo "</td>";
    11. echo "<td>";
    12. echo $year['title'];
    13. echo "</td>";
    14. echo "<td>";
    15. echo $year['price'];
    16. echo "</td>";
    17. echo "</tr>";    
    18. }    
    19. }
    20. ?>
    21. <div align="center">
    22. <table border="1">
    23. <?php
    24. $result = mysql_query('SELECT picture, title, price FROM goods WHERE grad_year = '.$_POST['year_s']);
    25. while ($row = mysql_fetch_array($result))
    26.     printYear($row);
    27. ?>
    28. </table>
    29. </div>
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    сделай выбор года, что конкретно не понятно?
     
  3. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Код (PHP):
    1. $result = mysql_query('SELECT picture, title, price FROM goods WHERE grad_year = '.$_POST['year_s']); 
    year_s = "1; DROP DATABASE mysql;"