PHP.SU

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

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

> Найдено сообщений: 5
Angel Flavor Отправлено: 02 Мая, 2011 - 00:21:14 • Тема: Урок №2 - немного управления • Форум: Уроки php

Ответов: 6
Просмотров: 11977
Во втором примере ошибка, в строке с elseif не должно быть ; на конце.
Angel Flavor Отправлено: 24 Сентября, 2010 - 11:02:38 • Тема: вывод из бд • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 299
Есть форма ( 3 поля и 2 выпадающих списка) для ввода данных поиска.

Имеется база, состоящая из одной таблицы, которая состоит 5 столбцов.

Нужно сделать скрипт вывода пользователей из базы, например, если в поле имя пишем "Александр" то в таблицу выводились все пользователи с этим именем, а если пишем имя, и указываем год, то выводились все пользователи с этим именем и этим годом рождения.

Помогите пожалуйста Огорчение
Angel Flavor Отправлено: 21 Сентября, 2010 - 17:08:28 • Тема: вывод из БД с поиском • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 2935
А если вот так попробовать?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Константы для подключения к СУБД
  3. define("HOST","localhost");
  4. define("USER","root");
  5. define("PASS","");
  6. define("DB","users");
  7.  
  8. // Подключение к СУБД
  9. $link = mysql_connect(HOST,USER,PASS) or die (mysql_error());  
  10.        
  11.         // Выбираем базу данных
  12.         mysql_select_db(DB, $link);
  13.        
  14.         //Устанавливаем кодировку UTF8  
  15.         mysql_query ("SET NAMES utf8");
  16.         mysql_query ("set character_set_client='utf8'");
  17.         mysql_query ("set character_set_results='utf8'");
  18.         mysql_query ("set collation_connection='utf8_general_ci'");
  19.  
  20. $search = mysql_escape_string ($_POST['search']);
  21. if ($result = mysql_query ("SELECT * FROM `users` WHERE `name` LIKE '%".$search."%'"))
  22. {
  23.   if (mysql_num_rows($result)>0)
  24.   {
  25.   echo '<table border="0">';
  26.   echo '<tr><td></td><td>Имя</td><td>Фамилия</td><td>Отчество</td><td>Специальность</td><td>Группа</td><td>Год</td></tr>';
  27.     while ($row = mysql_fetch_assoc($result))
  28.     {
  29.     echo '<tr><td>'.$row['number'].'</td><td>'.$row['name'].'</td><td>'.$row['surname'].'</td><td>'.$row['patronymic'].'</td><td>'.$row['specialty'].'</td><td>'.$row['group'].'</td><td>'.$row['year'].'</td></tr>';
  30.     }
  31.    echo '</table>';
  32.   }
  33.   else
  34.     echo 'Нет пользователей';
  35. }
  36. else
  37.  echo mysql_error();


Но почему-то все равно выводит все содержимое таблицы.
Angel Flavor Отправлено: 20 Сентября, 2010 - 20:19:19 • Тема: вывод из БД с поиском • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 2935
Uchkuma пишет:
Что именно у вас не получается?

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

Проще говоря, мы вводим в поля ( и выбираем в выпадающем меню) какие-либо значения, нажимаем кнопку "найти" и, если такая запись(и) есть в базе, они выводились в таблицу.

Приведенный мной скрипт выводит сразу все содержимое базы, хотя должен выводить только пользователей, соответствующих условиям поиска.
Angel Flavor Отправлено: 20 Сентября, 2010 - 01:02:34 • Тема: вывод из БД с поиском • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 2935
Здравствуйте, помогите пожалуйста реализовать вывод данных из базы по заданным условиям.
Формы:
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Поиск пользователей</title>
  5. </head>
  6. <body>
  7. <center>
  8. <form action="searchuser.php" method="post">
  9. <h1>Поиск пользователей</h1>
  10. <table border=0 cellspacing="30">
  11. <tr>
  12. <td align="right">Имя</td>
  13. <td><input type=text name=name maxlength=30 size=30><br></td>
  14. </tr>
  15. <tr>
  16. <td align="right">Фамилия</td>
  17. <td> <input type=text name=surname maxlength=30 size=30><br></td>
  18. </tr>
  19. <tr>
  20. <td align="right">Отчество</td>
  21. <td><input type=text name=patronymic maxlength=60 size=30><br></td>
  22. </tr>
  23. <tr>
  24. <td align="right">Специальность</td>
  25. <td>
  26. <select name="specialty">
  27.     <option value = 1>1</option>
  28.     <option value = 2>2</option>
  29.     <option value = 3>3</option>
  30. </select>
  31. </td>
  32. </tr>
  33. <tr>
  34. <td align="right">Группа</td>
  35. <td>
  36. <select name="group">
  37.     <option value=-1->1</option>
  38.     <option value=-2->2</option>
  39.     <option value=-3->3</option>
  40.     </select>
  41. </td>
  42. </tr>
  43. <tr>
  44. <td align="right">Год</td>
  45. <td>
  46. <?php
  47.    echo '<select name="year">';
  48.  
  49.     for($year = 1980; $year <= 2015; $year++)
  50.        {
  51.        echo "<option value=\"$year\">$year";
  52.         }
  53.     echo "</select>";
  54.    
  55. ?>
  56. </td>
  57. </tr>
  58. <tr>
  59. <td colspan=2 align="center"><input type=submit value="Найти"></td>
  60. </tr>
  61. </table>
  62. </form>
  63. </center>
  64. </body>
  65. </html>


Скрипт. На данный момент он выводит таблицу из бд полностью.
Нужно, чтобы он выводил лишь тех пользователей, которые соответствуют условиям, заданным в формы, приведенные выше.
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. // Константы для подключения к СУБД
  4. define("HOST","localhost");
  5. define("USER","root");
  6. define("PASS","");
  7. define("DB","users");
  8.  
  9. // Подключение к СУБД
  10. $link = mysql_connect(HOST,USER,PASS) or die (mysql_error());  
  11.        
  12.         // Выбираем базу данных
  13.         mysql_select_db(DB, $link);
  14.        
  15.         //Устанавливаем кодировку UTF8  
  16.         mysql_query ("SET NAMES utf8");
  17.         mysql_query ("set character_set_client='utf8'");
  18.         mysql_query ("set character_set_results='utf8'");
  19.         mysql_query ("set collation_connection='utf8_general_ci'");
  20.        
  21. // Если нажата кнопка search
  22.  if(isset($_POST['search']))
  23.  {
  24.      // Пришедшие данные из SELECT
  25.      $name = isset($_POST['name']) ? $_POST['name'] : 0;
  26.      $surname = isset($_POST['surname']) ? $_POST['surname'] : 0;
  27.      $patronymic = isset($_POST['patronymic']) ? $_POST['patronymic'] : 0;
  28.      $specialty = isset($_POST['specialty']) ? $_POST['specialty'] : 0;
  29.      $group = isset($_POST['group']) ? $_POST['group'] : 0;
  30.      $year = isset($_POST['year']) ? $_POST['year'] : 0;
  31.  }
  32.  // создаем ассоциативный массив
  33.  $array = array(
  34.                  "`id_cat_1`" => $name,
  35.                  "`id_cat_2`" => $surname,
  36.                  "`id_cat_3`" => $patronymic,
  37.                  "`id_cat_4`" => $specialty,
  38.                  "`id_cat_5`" => $group,
  39.                  "`id_cat_6`" => $year
  40.                );
  41.  // Начальная строчка запроса
  42.  $sql = "SELECT * FROM `users`";
  43.  
  44.  //Создаем пустой масив для условия WHERE
  45.  $sql_where = array();
  46.  
  47.  //Перебираем массив
  48.  foreach($array as $key => $value)
  49.  {
  50.      // Если есть 0 в запросе отсеиваем его
  51.      if(!empty($value))
  52.      $sql_where[] = $key." = ".intval($value);
  53.  }
  54.  
  55.  //Проверяем нужно ли подставлять условие WHERE в запрос
  56.  if(count($sql_where) > 0)
  57.  $sql .=" WHERE ";
  58.  
  59.  //Формируем окончательную строку запроса
  60.  $sql.=" ".implode(" AND ", $sql_where);
  61.  
  62.  // Скармливаем наш запрос MySQL
  63. $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
  64.  
  65. // Рисуем табличку
  66. $table = "<table border=1 width=70% align=center>\n";
  67.  
  68. while ($row = mysql_fetch_assoc($result))
  69. {
  70.    
  71.      $table .= "<tr>\n";
  72.      
  73.      $table .= "<td><center>".'Имя'."</center></td>\n";
  74.      $table .= "<td><center>".'Фамилия'."</center></td>\n";
  75.      $table .= "<td><center>".'Отчество'."</center></td>\n";
  76.      $table .= "<td><center>".'Специальность'."</center></td>\n";
  77.      $table .= "<td><center>".'Группа'."</center></td>\n";
  78.      $table .= "<td><center>".'Год'."</center></td></tr>\n";
  79.      $table .= "<tr><td>".$row['name']."</td>\n";
  80.      $table .= "<td>".$row['surname']."</td>\n";
  81.      $table .= "<td>".$row['patronymic']."</td>\n";
  82.      $table .= "<td>".$row['specialty']."</td>\n";
  83.      $table .= "<td>".$row['group']."</td>\n";
  84.      $table .= "<td>".$row['year']."</td>\n";
  85.      
  86.      $table .= "</tr>\n";
  87. }
  88.  
  89. $table .= "</table>\n";
  90.  
  91. // Выводим заполненую таблицу на экран
  92. echo $table;
  93. ?>

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB