PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 5
Angel Flavor
Отправлено: 24 Сентября, 2010 - 11:02:38 • Тема: вывод из бд • Форум: Напишите за меня, пожалуйста
Ответов: 0 Просмотров: 19
Есть форма ( 3 поля и 2 выпадающих списка) для ввода данных поиска.
Имеется база, состоящая из одной таблицы, которая состоит 5 столбцов.
Нужно сделать скрипт вывода пользователей из базы, например, если в поле имя пишем "Александр" то в таблицу выводились все пользователи с этим именем, а если пишем имя, и указываем год, то выводились все пользователи с этим именем и этим годом рождения.
Помогите пожалуйста
Angel Flavor
Отправлено: 21 Сентября, 2010 - 17:08:28 • Тема: вывод из БД с поиском • Форум: SQL и Архитектура БД
Ответов: 5 Просмотров: 30
А если вот так попробовать?
PHP:
скопировать код в буфер обмена
<?PHP
// Константы для подключения к СУБД
// Подключение к СУБД
// Выбираем базу данных
//Устанавливаем кодировку UTF8
mysql_query ( "set collation_connection='utf8_general_ci'" ) ;
if ( $result = mysql_query ( "SELECT * FROM `users` WHERE `name` LIKE '%" . $search . "%'" ) ) {
{
echo '<table border="0">' ;
echo '<tr><td></td><td>Имя</td><td>Фамилия</td><td>Отчество</td><td>Специальность</td><td>Группа</td><td>Год</td></tr>' ;
{
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>' ;
}
echo '</table>' ;
}
else
echo 'Нет пользователей' ;
}
else
Но почему-то все равно выводит все содержимое таблицы.
Angel Flavor
Отправлено: 20 Сентября, 2010 - 20:19:19 • Тема: вывод из БД с поиском • Форум: SQL и Архитектура БД
Ответов: 5 Просмотров: 30
Uchkuma пишет: Что именно у вас не получается?
Мне нужно, чтобы при вводе данных в форму, которая приведена в первом сообщении, производился вывод в таблицу всех пользователей из базы, которые соответствуют введенным условиям.
Проще говоря, мы вводим в поля ( и выбираем в выпадающем меню) какие-либо значения, нажимаем кнопку "найти" и, если такая запись(и) есть в базе, они выводились в таблицу.
Приведенный мной скрипт выводит сразу все содержимое базы, хотя должен выводить только пользователей, соответствующих условиям поиска.
Angel Flavor
Отправлено: 20 Сентября, 2010 - 01:02:34 • Тема: вывод из БД с поиском • Форум: SQL и Архитектура БД
Ответов: 5 Просмотров: 30
Здравствуйте, помогите пожалуйста реализовать вывод данных из базы по заданным условиям.
Формы:
CODE (
html ):
скопировать код в буфер обмена
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html >
<head >
<title > Поиск пользователей</ title >
</ head >
<body >
<center >
<form action = "searchuser.php" method = "post" >
<h1 > Поиск пользователей</ h1 >
<table border = 0 cellspacing = "30" >
<tr >
<td align = "right" > Имя</ td >
<td ><input type = text name = name maxlength = 30 size = 30><br ></ td >
</ tr >
<tr >
<td align = "right" > Фамилия</ td >
<td > <input type = text name = surname maxlength = 30 size = 30><br ></ td >
</ tr >
<tr >
<td align = "right" > Отчество</ td >
<td ><input type = text name = patronymic maxlength = 60 size = 30><br ></ td >
</ tr >
<tr >
<td align = "right" > Специальность</ td >
<td >
<select name = "specialty" >
<option value = 1 > 1</ option >
<option value = 2 > 2</ option >
<option value = 3 > 3</ option >
</ select >
</ td >
</ tr >
<tr >
<td align = "right" > Группа</ td >
<td >
<select name = "group" >
<option value = -1 -> 1</ option >
<option value = -2 -> 2</ option >
<option value = -3 -> 3</ option >
</ select >
</ td >
</ tr >
<tr >
<td align = "right" > Год</ td >
<td >
<?php
echo '<select name="year"> ';
for($year = 1980; $year <= 2015 ; $year++)
{
echo "<option value=\" $year\"> $year";
}
echo "</ select > ";
?>
</ td >
</ tr >
<tr >
<td colspan = 2 align = "center" ><input type = submit value = "Найти" ></ td >
</ tr >
</ table >
</ form >
</ center >
</ body >
</ html >
Скрипт. На данный момент он выводит таблицу из бд полностью.
Нужно, чтобы он выводил лишь тех пользователей, которые соответствуют условиям, заданным в формы, приведенные выше.
PHP:
скопировать код в буфер обмена
<?
// Константы для подключения к СУБД
// Подключение к СУБД
// Выбираем базу данных
//Устанавливаем кодировку UTF8
mysql_query ( "set collation_connection='utf8_general_ci'" ) ;
// Если нажата кнопка search
if ( isset ( $_POST [ 'search' ] ) ) {
// Пришедшие данные из SELECT
$name = isset ( $_POST [ 'name' ] ) ?
$_POST [ 'name' ] : 0 ; $surname = isset ( $_POST [ 'surname' ] ) ?
$_POST [ 'surname' ] : 0 ; $patronymic = isset ( $_POST [ 'patronymic' ] ) ?
$_POST [ 'patronymic' ] : 0 ; $specialty = isset ( $_POST [ 'specialty' ] ) ?
$_POST [ 'specialty' ] : 0 ; $group = isset ( $_POST [ 'group' ] ) ?
$_POST [ 'group' ] : 0 ; $year = isset ( $_POST [ 'year' ] ) ?
$_POST [ 'year' ] : 0 ; }
// создаем ассоциативный массив
"`id_cat_1`" => $name ,
"`id_cat_2`" => $surname ,
"`id_cat_3`" => $patronymic ,
"`id_cat_4`" => $specialty ,
"`id_cat_5`" => $group ,
"`id_cat_6`" => $year
) ;
// Начальная строчка запроса
$sql = "SELECT * FROM `users`" ;
//Создаем пустой масив для условия WHERE
//Перебираем массив
foreach ( $array as $key => $value )
{
// Если есть 0 в запросе отсеиваем его
$sql_where [ ] = $key . " = " . intval ( $value ) ; }
//Проверяем нужно ли подставлять условие WHERE в запрос
if ( count ( $sql_where ) > 0
) $sql .= " WHERE " ;
//Формируем окончательную строку запроса
$sql .= " " . implode ( " AND " , $sql_where ) ;
// Скармливаем наш запрос MySQL
// Рисуем табличку
$table = "<table border=1 width=70% align=center>\n " ;
{
$table .= "<tr>\n " ;
$table .= "<td><center>" . 'Имя' . "</center></td>\n " ;
$table .= "<td><center>" . 'Фамилия' . "</center></td>\n " ;
$table .= "<td><center>" . 'Отчество' . "</center></td>\n " ;
$table .= "<td><center>" . 'Специальность' . "</center></td>\n " ;
$table .= "<td><center>" . 'Группа' . "</center></td>\n " ;
$table .= "<td><center>" . 'Год' . "</center></td></tr>\n " ;
$table .= "<tr><td>" . $row [ 'name' ] . "</td>\n " ;
$table .= "<td>" . $row [ 'surname' ] . "</td>\n " ;
$table .= "<td>" . $row [ 'patronymic' ] . "</td>\n " ;
$table .= "<td>" . $row [ 'specialty' ] . "</td>\n " ;
$table .= "<td>" . $row [ 'group' ] . "</td>\n " ;
$table .= "<td>" . $row [ 'year' ] . "</td>\n " ;
$table .= "</tr>\n " ;
}
$table .= "</table>\n " ;
// Выводим заполненую таблицу на экран
echo $table ;
?>
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB