Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325

Поиск по таблице из БД в PHP

27.11.2014, 20:08. Показов 8265. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Так как я новичок во всем этом, помогите, пожалуйста..
Вопрос: есть таблица в БД и вывожу его на страницу через PHP. Нужно сделать поиск по таблице. Когда есть совпадение по словам вывело именно эту строку. Т.е как ctrl+f. находил все.

Благодарю заранее!

Вот мой код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
$db = mysql_connect ("localhost","root","usbw");
mysql_select_db("instruction",$db);
mysql_query("SET NAMES cp1251");
$result = mysql_query("SELECT * FROM dolzhnostnye",$db);
 if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
    
    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }
 
while ($row = mysql_fetch_assoc($result)){
    $arr[] = $row;              
}
 
echo "<table border='3'>";
echo "<tr><td></td><td>pole2/тип документа</td><td>pole3</td><td>pole4</td>
<td>pole5</td><td>pole6</td><td>pole7</td><td>pole8</td>
<td>pole9</td><td>pole10</td><td>pole11</td><td>pole12</td>
<td>pole13</td><td>pole14</td><td>pole15</td><td>pole16</td>
<td>pole17</td><td>pole18</td><td>pole19</td><td>pole20</td>
<td>pole21</td><td>pole22</td></tr>";
while ($row=mysql_fetch_array($result)){
$pole1=$row[0];
$pole2=$row[1];
$pole3=$row[2];
$pole4=$row[3];
$pole5=$row[4];
$pole6=$row[5];
$pole7=$row[6];
$pole8=$row[7];
$pole9=$row[8];
$pole10=$row[9];
$pole11=$row[10];
$pole12=$row[11];
$pole13=$row[12];
$pole14=$row[13];
$pole15=$row[14];
$pole16=$row[15];
$pole17=$row[16];
$pole18=$row[17];
$pole19=$row[18];
$pole20=$row[19];
$pole21=$row[20];
$pole22=$row[21];
 
 
echo "<tr><td>$pole1</td><td>$pole2</td><td>$pole3</td><td>$pole4</td>
<td>$pole5</td><td>$pole6</td><td>$pole7</td><td>$pole8</td>
<td>$pole9 
<a href='dolzhnostnye.php?id=1'>".$row['pdf_doc']."</a>
</td>
<td> $pole9
<a href='http://localhost:8080/base/2013-04-25-AOK.P1882260.pdf?id=1".$row['0']."'>".$row['pdf_doc']."</a>
</td>
 
<td>$pole10 
<a href='n.php?id=".$row['0']."'>".$row['word_doc']."</a></td>
<td>$pole11</td><td>$pole12</td>
 
<td>$pole13</td><td>$pole14</td><td>$pole15</td><td>$pole16</td>
<td>$pole17</td>
<td>$pole18 <a href='q.php?id=".$row['0']."'>".$row['izmen_kol_doc_1']."</a></td>
<td>$pole19 <a href='q.php?id=".$row['0']."'>".$row['izmen_kol_doc_2']."</a></td>
<td>$pole20 <a href='q.php?id=".$row['0']."'>".$row['izmen_kol_doc_3']."</a></td>
<td>$pole21 <a href='q.php?id=".$row['0']."'>".$row['izmen_kol_doc_4']."</a></td>
<td>$pole22 <a href='q.php?id=".$row['0']."'>".$row['21']."</a></td></tr>";
    }
       mysql_free_result($result);
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2014, 20:08
Ответы с готовыми решениями:

Php ПОИСК в таблице
У меня на сайте я сделал страницу и на этой странице я прописал этот код: &lt;?php // Файл firstsql.php $host=''; // имя хоста...

Поиск в таблице mysql через формы+php
Создал форму где 13 форм типа text, каждая соответствует определённому сталбцу таблицы, форма применяет скрипт: &lt;?php ...

Индексный поиск в таблице MySQL на PHP
Прошу помощи, коллеги! Ситуация следующая: Есть таблица в БД MySQL. Для простоты пусть имя таблицы будет Tabl1. В таблице есть...

40
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
27.11.2014, 20:45
Прочитайте про LIKE в mySQL
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
27.11.2014, 21:23  [ТС]
illya05, благодарю, сейчас прочитаю..
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 00:31  [ТС]
прочитала про LIKE. вроде все понятно. Но у меня безрезультатно.
вот форма
HTML5
1
2
3
4
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button> 
</form>
вот поисковой код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php 
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'usbw');
define('DB_NAME', 'dolzhnostnye');
 
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
    exit('Cannot select database');
}
 
mysql_query('SET NAMES utf8');
 
function search ($query) 
{ 
    $query = trim($query); 
    $query = mysql_real_escape_string($query);
    $query = htmlspecialchars($query);
 
    if (!empty($query)) 
    { 
        if (strlen($query) < 3) {
            $text = '<p>Слишком короткий поисковый запрос.</p>';
        } else if (strlen($query) > 128) {
            $text = '<p>Слишком длинный поисковый запрос.</p>';
        } else { 
            $q = "SELECT `id_doc`, `type_doc`, `number_doc`, `data_doc`, `name_doc`, 
            `original_or_copy_doc`, `page_doc`, `kol_exemp_doc`, `pdf_doc`, `word_doc`, 
            `excel_doc`, `dwg_doc`, `vhod_nomer_doc`, `data_registr_doc`, `FIO_doc`, `next_test_doc`, 
            `prediduw_test_doc`,`izmen_kol_doc_1`, `izmen_kol_doc_2`, `izmen_kol_doc_3`,
            `izmen_kol_doc_4`, `izvew_ob-izmen_doc` FROM `dolzhnostnye` WHERE `text` LIKE '%$query%'
                  OR `name_doc` LIKE '%$query%' OR `meta_k` LIKE '%$query%'
                  OR `meta_d` LIKE '%$query%'";
 
            $result = mysql_query($q);
 
            if (mysql_affected_rows() > 0) { 
                $row = mysql_fetch_assoc($result); 
                $num = mysql_num_rows($result);
 
                $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
 
                do {
                    // Делаем запрос, получающий ссылки на статьи
                    $q1 = "SELECT `link` FROM `dolzhnostnye` WHERE `number_doc` = '$row[id_doc]'";
                    $result1 = mysql_query($q1);
 
                    if (mysql_affected_rows() > 0) {
                        $row1 = mysql_fetch_assoc($result1);
                    }
 
                    $text .= '<p><a> href="'.$row1['type_doc'].'/'.$row['type_doc'].'/'.$row['number_doc'].
                    '" name_doc="'.$row['name_doc'].'">'.$row['name_doc'].'</a></p>
                    <p>'.$row['pdf_doc'].'</p>';
 
                } while ($row = mysql_fetch_assoc($result)); 
            } else {
                $text = '<p>По вашему запросу ничего не найдено.</p>';
            }
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }
 
    return $text; 
} 
?>
<?php 
if (!empty($_POST['query'])) { 
    $search_result = search ($_POST['query']); 
    echo $search_result; 
}
?>
У меня в результате выводит НИЧЕГО.

Где что не правильно делаю?
Если знаете как это делается, помогите, пожалуйста. (желательно как ctrl+f)

Благодарю, Вас, за помощь!
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 00:52
Несколько советов:
Если не выводит НИЧЕГО, возможно у Вас Fatal error, а показ ошибок отключен.
Включайте для Дебага error_reporting(9999); // К примеру.
Далее,
PHP
1
 $query = htmlspecialchars($query);
обычно еще убирают обратные слеши после работы этой ф-ии stripslashes.
И последнее:
При запросе в бд дописывайте:
PHP
1
$result = mysql_query($q) or die(mysql_error());
Так Вы сразу будите видеть ошибки в запросе и далее скрипт ничего не натворит.
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 01:09  [ТС]
Цитата Сообщение от lestat89 Посмотреть сообщение
Включайте для Дебага error_reporting(9999); // К примеру.
как это сделать?

Цитата Сообщение от lestat89 Посмотреть сообщение
Fatal error
нет

Цитата Сообщение от lestat89 Посмотреть сообщение
or die(mysql_error());
добавила. Все равно ошибок не показывает. Все также пустой результат

Добавлено через 6 минут
Спасибо, за Ваш помощь!
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 13:33
Цитата Сообщение от DDAri Посмотреть сообщение
как это сделать?
PHP
1
error_reporting(9999);
Цитата Сообщение от DDAri Посмотреть сообщение
Спасибо, за Ваш помощь!
Проблема решена?
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 13:53  [ТС]
lestat89,
Цитата Сообщение от lestat89 Посмотреть сообщение
Проблема решена?
еще нет.

Цитата Сообщение от lestat89 Посмотреть сообщение
1
error_reporting(9999);
его добавить в form или search? (извините, если это глупый вопрос)


Благодарю, Вас, за потраченное время на меня!
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
29.11.2014, 13:54
Цитата Сообщение от lestat89 Посмотреть сообщение
Проблема решена?
Нет, ждем)

Добавлено через 41 секунду
Цитата Сообщение от DDAri Посмотреть сообщение
его добавить в form или search? (извините, если это глупый вопрос)
В начало php файла
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 13:54
Цитата Сообщение от DDAri Посмотреть сообщение
его добавить в form или search?
Сразу после
PHP
1
<?php
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 14:06  [ТС]
теперь пустую страницу выводит.
Может в кодировке search что-то не так.

search.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php 
error_reporting(9999);
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'usbw');
define('DB_NAME', 'instruction');
 
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
    exit('Cannot select database');
}
 
mysql_query('SET NAMES utf8');
 
function search ($query) 
{ 
    $query = trim($query); 
    $query = mysql_real_escape_string($query);
    $query = htmlspecialchars($query);
 
    if (!empty($query)) 
    { 
        if (strlen($query) < 3) {
            $text = '<p>Слишком короткий поисковый запрос.</p>';
        } else if (strlen($query) > 128) {
            $text = '<p>Слишком длинный поисковый запрос.</p>';
        } else { 
            $q = "SELECT `id_doc`, `type_doc`, `number_doc`, `data_doc`, `name_doc`, 
            `original_or_copy_doc`, `page_doc`, `kol_exemp_doc`, `pdf_doc`, `word_doc`, 
            `excel_doc`, `dwg_doc`, `vhod_nomer_doc`, `data_registr_doc`, `FIO_doc`, `next_test_doc`, 
            `prediduw_test_doc`,`izmen_kol_doc_1`, `izmen_kol_doc_2`, `izmen_kol_doc_3`,
            `izmen_kol_doc_4`, `izvew_ob-izmen_doc` FROM `dolzhnostnye` WHERE `text` LIKE '%$query%'
                  OR `name_doc` LIKE '%$query%'";
 
            $result = mysql_query($q)or die(mysql_error());
 
 
            if (mysql_affected_rows() > 0) { 
                $row = mysql_fetch_assoc($result); 
                $num = mysql_num_rows($result);
 
                $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
 
                do {
                    // Делаем запрос, получающий ссылки на статьи
                    $q1 = "SELECT `name_doc` FROM `dolzhnostnye` WHERE `number_doc` = '$row[id_doc]'";
                    $result1 = mysql_query($q1);
 
                    if (mysql_affected_rows() > 0) {
                        $row1 = mysql_fetch_assoc($result1);
                    }
 
                    $text .= '<p><a> href="'.$row1['type_doc'].'/'.$row['type_doc'].'/'.$row['number_doc'].
                    '" name_doc="'.$row['name_doc'].'">'.$row['name_doc'].'</a></p>
                    <p>'.$row['pdf_doc'].'</p>';
 
                } while ($row = mysql_fetch_assoc($result)); 
            } else {
                $text = '<p>По вашему запросу ничего не найдено.</p>';
            }
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }
 
    return $text; 
} 
 
if (!empty($_POST['$query'])) { 
    $search_result = search ($_POST['query']); 
    echo $search_result; 
}
?>
а форма в главной пхп.
глав.пхп
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
error_reporting(9999);
define('DB_HOST', 'localhost'); // Имя подключения mysql
define('DB_USER', 'root'); // Имя пользователя mysql
define('DB_PASS', 'usbw'); // Пароль к mysql
define('DB_NAME', 'instruction'); // Имя базы к mysql
 
$connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$connect->query('SET CHARSET UTF8');
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button> 
</form>
 
 
 
</head>
<body>
 
<style type="text/css">
table {
    background-color: rgba(209,209,209,1);
}
 
tr, td {
    padding: 9px 16px;
    background-color: rgba(219,219,219,1);
}
</style>
 
<table>
Добавлено через 36 секунд
Благодарю, за Вашы ответы!
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 14:09
HTML5
1
2
3
4
5
6
7
8
9
10
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button> 
</form>
 
 
 
</head>
У вас код формы прописан в голове )))
А должен быть в теле BODY


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
error_reporting(9999);
define('DB_HOST', 'localhost'); // Имя подключения mysql
define('DB_USER', 'root'); // Имя пользователя mysql
define('DB_PASS', 'usbw'); // Пароль к mysql
define('DB_NAME', 'instruction'); // Имя базы к mysql
 
$connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$connect->query('SET CHARSET UTF8');
?>
<!DOCTYPE html>
<html>
<head>
 
<style type="text/css">
table {
    background-color: rgba(209,209,209,1);
}
 
tr, td {
    padding: 9px 16px;
    background-color: rgba(219,219,219,1);
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button> 
</form>
</body>
</html>
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 14:12  [ТС]
lestat89,
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
error_reporting(9999);
define('DB_HOST', 'localhost'); // Имя подключения mysql
define('DB_USER', 'root'); // Имя пользователя mysql
define('DB_PASS', 'usbw'); // Пароль к mysql
define('DB_NAME', 'instruction'); // Имя базы к mysql
 
$connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$connect->query('SET CHARSET UTF8');
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button> 
</form>
 
<style type="text/css">
table {
    background-color: rgba(209,209,209,1);
}
 
tr, td {
    padding: 9px 16px;
    background-color: rgba(219,219,219,1);
}
</style>
 
<table>
все равно пустая страница выводиться...

Спасибо, за помощь!
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 14:14
Хорошо, сделаем мега-дебаг!
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!-- Start work -->
<?php
error_reporting(9999);
define('DB_HOST', 'localhost'); // Имя подключения mysql
define('DB_USER', 'root'); // Имя пользователя mysql
define('DB_PASS', 'usbw'); // Пароль к mysql
define('DB_NAME', 'instruction'); // Имя базы к mysql
 
$connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$connect->query('SET CHARSET UTF8');
?>
<! -- HTML CODE -->
<!DOCTYPE html>
<html>
<head>
 
<style type="text/css">
table {
    background-color: rgba(209,209,209,1);
}
 
tr, td {
    padding: 9px 16px;
    background-color: rgba(219,219,219,1);
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button> 
</form>
</body>
</html>
Что в исходном коде страницы?


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<! -- start work -->
<?php 
error_reporting(9999);
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'usbw');
define('DB_NAME', 'instruction');
 
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
    exit('Cannot select database');
}
 
mysql_query('SET NAMES utf8');
 
function search ($query) 
{ 
    $query = trim($query); 
    $query = mysql_real_escape_string($query);
    $query = htmlspecialchars($query);
 
    if (!empty($query)) 
    { 
        if (strlen($query) < 3) {
            $text = '<p>Слишком короткий поисковый запрос.</p>';
        } else if (strlen($query) > 128) {
            $text = '<p>Слишком длинный поисковый запрос.</p>';
        } else { 
            $q = "SELECT `id_doc`, `type_doc`, `number_doc`, `data_doc`, `name_doc`, 
            `original_or_copy_doc`, `page_doc`, `kol_exemp_doc`, `pdf_doc`, `word_doc`, 
            `excel_doc`, `dwg_doc`, `vhod_nomer_doc`, `data_registr_doc`, `FIO_doc`, `next_test_doc`, 
            `prediduw_test_doc`,`izmen_kol_doc_1`, `izmen_kol_doc_2`, `izmen_kol_doc_3`,
            `izmen_kol_doc_4`, `izvew_ob-izmen_doc` FROM `dolzhnostnye` WHERE `text` LIKE '%$query%'
                  OR `name_doc` LIKE '%$query%'";
 
            $result = mysql_query($q)or die(mysql_error());
 
 
            if (mysql_affected_rows() > 0) { 
                $row = mysql_fetch_assoc($result); 
                $num = mysql_num_rows($result);
 
                $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
 
                do {
                    // Делаем запрос, получающий ссылки на статьи
                    $q1 = "SELECT `name_doc` FROM `dolzhnostnye` WHERE `number_doc` = '$row[id_doc]'";
                    $result1 = mysql_query($q1);
 
                    if (mysql_affected_rows() > 0) {
                        $row1 = mysql_fetch_assoc($result1);
                    }
 
                    $text .= '<p><a> href="'.$row1['type_doc'].'/'.$row['type_doc'].'/'.$row['number_doc'].
                    '" name_doc="'.$row['name_doc'].'">'.$row['name_doc'].'</a></p>
                    <p>'.$row['pdf_doc'].'</p>';
 
                } while ($row = mysql_fetch_assoc($result)); 
            } else {
                $text = '<p>По вашему запросу ничего не найдено.</p>';
            }
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }
 
    return $text; 
} 
echo "<! -- fuction end description -->"; 
if (!empty($_POST['$query'])) { 
    $search_result = search ($_POST['query']); 
    echo $search_result; 
}
?>
0
140 / 96 / 47
Регистрация: 03.08.2013
Сообщений: 765
29.11.2014, 14:15
DDAri, У Вас файл .php или .html?
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 14:16  [ТС]
оба .php
search.php и dolzhnostnye.php (в должностных форма стоит)
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 14:19
Пустая страница уже та где форма ? или результат ?

Добавлено через 1 минуту
Еще вариант проработать:
PHP
1
if(!class_exists("mysqli")) exit ("Not defined class");
Хотя фатал должен бы сработать, но я сталкивался с таким..
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 14:31  [ТС]
lestat89, по Вашему коду исправила.. все равно пустую страницу выводит. или я что-то не так сделала..
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!-- Start work -->
<?php
error_reporting(9999);
define('DB_HOST', 'localhost'); // Имя подключения mysql
define('DB_USER', 'root'); // Имя пользователя mysql
define('DB_PASS', 'usbw'); // Пароль к mysql
define('DB_NAME', 'instruction'); // Имя базы к mysql
 
$connect = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$connect->query('SET CHARSET UTF8');
?>
<! -- HTML CODE -->
<!DOCTYPE html>
<html>
<head>
 
</head>
<body>
<style type="text/css">
table {
    background-color: rgba(209,209,209,1);
}
 
tr, td {
    padding: 9px 16px;
    background-color: rgba(219,219,219,1);
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="search" method="post" action="search.php">
    <input type="search" name="query" placeholder="Поиск">
    <button type="submit">Найти</button>
 
 
<table>
    <tr>
    <td></td>
        <td>Тип документа</td>
<td>№ документа (полностью)</td>
<td>Дата утверждения документа</td>
<td>Наименование документа</td>
<td>оригинал/копия</td>
<td>Количество листов</td>
<td>Количество экземпляров</td>
<td colspan="4">Наличие документа в формате (.pdf, .doc, .xls, .dwg)</td>
<td>Входящий номер документа</td>
<td>Дата регистрации документа</td>
<td>ФИО сдавшего документ</td>
<td>Следующая проверка</td>
<td>Дата предыдущего документа</td>
<td colspan="4">Изменение количества документа</td>
<td>Извещение об изменении</td>
    </tr>
 
<?php
$query = $connect->query("SELECT * FROM `dolzhnostnye`");
while($result = $query->fetch_assoc()) {
?>
 
    <tr>
        <td><?=$result["id_doc"]?></td>
<td><?=$result["type_doc"]?></td>
<td><?=$result["number_doc"]?></td>
<td><?=$result["data_doc"]?></td>
<td><?=$result["name_doc"]?></td>
<td><?=$result["original_or_copy_doc"]?></td>
<td><?=$result["page_doc"]?></td>
<td><?=$result["kol_exemp_doc"]?></td>
<td><a href="<?=$result["pdf_doc"]?>">PDF</a></td>
<td><a href="<?=$result["word_doc"]?>">DOC</a></td>
<td><a href="<?=$result["excel_doc"]?>"></a></td>
<td><a href="<?=$result["dwg_doc"]?>"></a></td>
<td><?=$result["vhod_nomer_doc"]?></td>
<td><?=$result["data_registr_doc"]?></td>
<td><?=$result["FIO_doc"]?></td>
<td><?=$result["next_test_doc"]?></td>
<td><?=$result["prediduw_test_doc"]?></td>
<td><a href="<?=$result["izmen_kol_doc_1"]?>">скачать</a></td>
<td><a href="<?=$result["izmen_kol_doc_2"]?>">скачать</a></td>
<td><a href="<?=$result["izmen_kol_doc_3"]?>">скачать</a></td>
<td><a href="<?=$result["izmen_kol_doc_4"]?>">скачать</a></td>
<td><a href="<?=$result["izvew_ob_izmen_doc"]?>"></a></td>
</tr>
 
<?php
}
?>
</table>
 
</body>
</html>
Добавлено через 3 минуты
lestat89,
Цитата Сообщение от lestat89 Посмотреть сообщение
или результат ?
результат поиска. В поиске пишу, например, "юрист" после нажимаю "найти". и выводит "пустую страницу".

Добавлено через 3 минуты
А форму нужно писать в отдельном файле?
У меня форма написано внутри файла где все результаты(в виде таблицы) выводиться из бд. т.е он у меня dolzhnostnye.php
а search.php он отдельный файл.
0
 Аватар для lestat89
29 / 41 / 10
Регистрация: 12.09.2012
Сообщений: 334
29.11.2014, 14:32
Значит с этой страницей и так все ок, проблема в search.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<! -- start work -->
<?php 
error_reporting(9999);
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'usbw');
define('DB_NAME', 'instruction');
 
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
    exit('Cannot select database');
}
 
mysql_query('SET NAMES utf8');
 
function search ($query) 
{ 
    $query = trim($query); 
    $query = mysql_real_escape_string($query);
    $query = htmlspecialchars($query);
 
    if (!empty($query)) 
    { 
        if (strlen($query) < 3) {
            $text = '<p>Слишком короткий поисковый запрос.</p>';
        } else if (strlen($query) > 128) {
            $text = '<p>Слишком длинный поисковый запрос.</p>';
        } else { 
            $q = "SELECT `id_doc`, `type_doc`, `number_doc`, `data_doc`, `name_doc`, 
            `original_or_copy_doc`, `page_doc`, `kol_exemp_doc`, `pdf_doc`, `word_doc`, 
            `excel_doc`, `dwg_doc`, `vhod_nomer_doc`, `data_registr_doc`, `FIO_doc`, `next_test_doc`, 
            `prediduw_test_doc`,`izmen_kol_doc_1`, `izmen_kol_doc_2`, `izmen_kol_doc_3`,
            `izmen_kol_doc_4`, `izvew_ob-izmen_doc` FROM `dolzhnostnye` WHERE `text` LIKE '%$query%'
                  OR `name_doc` LIKE '%$query%'";
 
            $result = mysql_query($q)or die(mysql_error());
 
 
            if (mysql_affected_rows() > 0) { 
                $row = mysql_fetch_assoc($result); 
                $num = mysql_num_rows($result);
 
                $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
 
                do {
                    // Делаем запрос, получающий ссылки на статьи
                    $q1 = "SELECT `name_doc` FROM `dolzhnostnye` WHERE `number_doc` = '$row[id_doc]'";
                    $result1 = mysql_query($q1);
 
                    if (mysql_affected_rows() > 0) {
                        $row1 = mysql_fetch_assoc($result1);
                    }
 
                    $text .= '<p><a> href="'.$row1['type_doc'].'/'.$row['type_doc'].'/'.$row['number_doc'].
                    '" name_doc="'.$row['name_doc'].'">'.$row['name_doc'].'</a></p>
                    <p>'.$row['pdf_doc'].'</p>';
 
                } while ($row = mysql_fetch_assoc($result)); 
            } else {
                $text = '<p>По вашему запросу ничего не найдено.</p>';
            }
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }
 
    return $text; 
} 
echo "<! -- fuction end description -->"; 
if (!empty($_POST['$query'])) { 
    $search_result = search ($_POST['query']); 
    echo $search_result; 
}
?>
Вот этот код попробуйте, потом введите запрос,и нажмите в браузере показать исходный код, что там будет ?
0
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
29.11.2014, 14:34  [ТС]
Цитата Сообщение от lestat89 Посмотреть сообщение
Хотя фатал должен бы сработать
никакой ошибки ни фатала ни варинга ничего не выводит. Когда нажимаю
Цитата Сообщение от DDAri Посмотреть сообщение
"юрист" после нажимаю "найти".
пересылается на эту страницу http://localhost:8080/base/search.php
а поиск делаю по этой странице http://localhost:8080/base/dolzhnostnye.php
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2014, 14:34
Помогаю со студенческими работами здесь

Поиск строки в таблице (MySQL + Php)
Всем привет. Я новичек в mysql, помогите сформировать query запрос. Есть БД/таблица/строки. В каждой строке есть ячейки id и...

Как сделать поиск с помощью php в таблице MySQL
Доброе время суток. Подскажите плиз как сделать поиск с помощью php в таблице mySQL вот что я пробовал сделать: &lt;?php ...

Поиск записей в одной таблице, где значения ключевого поля не совпадают с полем в другой таблице
Имеется Access XP, надо создать запрос для поиска записей в таблице ТОВАРЫ,где значения ключевого поля (Артикул) не совпадают со значениями...

Поиск значения в таблице StringGrid (в неупорядоченной таблице)
Здравствуйте! Очень нужна помощь! Есть таблица StringGrid1 с данными( номер, ФИО, возраст, образование и т.п.). Нужно организовать поиск...

Нумерация в таблице на php
Добрый день. Имеется код, который выводит из базы некоторые значения в таблицу. Задача - пронумеровать строки этой таблицы. Вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru