Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
1

На сайте есть таблица. Сделать поиск с выводом результатов в подобную таблицу

18.02.2014, 12:41. Просмотров 2156. Ответов 19
Метки нет (Все метки)

Доброго времени суток. Вот собственно картинка таблицы на сайте (если нужно могу скинуть ссылку на сайт)
На сайте есть таблица. Сделать поиск с выводом результатов в подобную таблицу

Колонки Группа и Студент берутся из таблицы users. Комментарий из таблицы comments, остальные из таблицы files.

Так заполняются колонки группа, студент, тема (Руководитель/Консультант, Язык пр./Среда пр., Тематика, Файлы идентично Тема) index.php:
PHP/HTML
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
<table width="80%" border="1" cellspacing="1" align="center">
<caption></caption>
  <tr>
    <td colspan="8" align="center">Результаты поиска<br></td>
  </tr>
<tr>
      <td align="center" width="5%"  height="25px" bgcolor="">Группа</td>
      <td align="center" width="10%" height="25px" bgcolor="">Студент</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тема</td>
      <td align="center" width="15%" height="25px" bgcolor="">Руководитель/<br>Консультант</td>
      <td align="center" width="15%" height="25px" bgcolor="">Язык пр./<br>Среда пр.</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тематика</td>
      <td align="center" width="10%" height="25px" bgcolor="">Файлы</td>
      <td align="center" width="15%" height="25px" bgcolor="">Комментарий</td>
</tr>
 
    while($array2 = mysql_fetch_assoc($resource)) : ?>
    <tr>
     <td align="center"><?php echo $array2['group'];  ?></td> <!-- Группа -->
     <td align="center"><?php echo $array2['name']; echo ' '; echo $array2['familiya']; ?></td> <!-- Студенты -->
 
     <td align="center"><?php  
 
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["tema"]); echo "<br>"; //Вывод темы
        }
       }
?></td> <!-- Тема -->
Вот форма для поиска (пока ищу только по колонке/полю Тема) search.php:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
include("blocks/header.php");
?>
 
<html>
<head>
<title>Поиск</title>
</head>
</html>
 
<br>
<form action="search_result.php" method="post">
<input type="text" name="tema" />
<input type="submit" value="Искать" />
</form>
 
<?php
include("blocks/footer.php");
?>
НУ и вот собственно как сделал для вывода результата поиска search_result.php:
PHP/HTML
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
<?php
session_start();
include("bd.php");
include("blocks/header.php");
 
$tema = $_POST["tema"];
 
$resource = mysql_query('SELECT * FROM `users` WHERE `type_users` = "Студент" ORDER by `group`',$db); ?>
<br>
<table width="80%" border="1" cellspacing="1" align="center">
<caption></caption>
  <tr>
    <td colspan="8" align="center">Результаты поиска<br></td>
  </tr>
<tr>
      <td align="center" width="5%"  height="25px" bgcolor="">Группа</td>
      <td align="center" width="10%" height="25px" bgcolor="">Студент</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тема</td>
      <td align="center" width="15%" height="25px" bgcolor="">Руководитель/<br>Консультант</td>
      <td align="center" width="15%" height="25px" bgcolor="">Язык пр./<br>Среда пр.</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тематика</td>
      <td align="center" width="10%" height="25px" bgcolor="">Файлы</td>
      <td align="center" width="15%" height="25px" bgcolor="">Комментарий</td>
</tr>
 
 
if(!$resource){  die(mysql_error());   } 
    while($array2 = mysql_fetch_assoc($resource)) : ?>
    <tr>
     <td align="center"><?php echo $array2['group'];  ?></td> <!-- Группа -->
     <td align="center"><?php echo $array2['name']; echo ' '; echo $array2['familiya']; ?></td> <!-- Студенты -->
 
     <td align="center"><?php  
 
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `tema` LIKE '%".strtoupper($tema)."%' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["tema"]); echo "<br>"; //Вывод темы
        }
       }
?></td> <!-- Тема -->
Ну и собственно проблема вот в чем, РЕЗУЛЬТАТ ПОИСКА выводит все записи. Как видно на картинке, есть Тема - Архив ТЗ, дк вот, если ввести в поиск к примеру 123, то выведет все записи, только в поле Тема будет пусто.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2014, 12:41
Ответы с готовыми решениями:

Поиск с выводом результатов
Не знаю даже как правильно обозвать вопрос, но если по-простецки: хотелось бы узнать, есть ли...

Поиск с выводом результатов
Добрый день! Прошу вашей помощи. Имеется такой код: Sub sea() Dim strStartAddr As...

Поиск в БД с выводом результатов в TextBox-ы
Имеется БД Microsoft Access которая подключена к программе сделаной на VB.Net. Вот надо сделать...

Поиск в БД Access с выводом результатов
Здравствуйте. У меня следующий вопрос: Я подключен БД Access (Код видно на прикрепленном файле...

Поиск по базе с выводом результатов в DGV
Делаю поиск по базе вот таким способом: //если не отмечены чекбоксы и текстбоксы пустые ...

19
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 19:51  [ТС] 2
Прошу помощи или напутствия
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 19:56 3
приведенный выше код вообще не должен выводить никаких записей. А while($row=.... должно выводиться как есть на странице - php-код надо открывать
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 19:58  [ТС] 4
Цитата Сообщение от KOPOJI Посмотреть сообщение
приведенный выше код вообще не должен выводить никаких записей
Это только часть, могу конечно весь закинуть, но он большой и это для вас (и скорей всего многих) говно код.
0
18.02.2014, 19:58
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 20:02 5
TheRealKos, я про это
Цитата Сообщение от TheRealKos Посмотреть сообщение
Так заполняются колонки группа, студент, тема
Цитата Сообщение от TheRealKos Посмотреть сообщение
PHP/HTML
15
16
17
18
19
20
21
22
23
24
25
26
27
<tr>
      <td align="center" width="5%"  height="25px" bgcolor="">Группа</td>
      <td align="center" width="10%" height="25px" bgcolor="">Студент</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тема</td>
      <td align="center" width="15%" height="25px" bgcolor="">Руководитель/<br>Консультант</td>
      <td align="center" width="15%" height="25px" bgcolor="">Язык пр./<br>Среда пр.</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тематика</td>
      <td align="center" width="10%" height="25px" bgcolor="">Файлы</td>
      <td align="center" width="15%" height="25px" bgcolor="">Комментарий</td>
</tr>
 
    while($array2 = mysql_fetch_assoc($resource)) : ?>
    <tr>
Этот код не должен выводить - отсутствует "<?php". Следовательно, можно сделать вывод, что это не тот код
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 20:08  [ТС] 6
Вот index.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
<?php
    // Проверяем, пусты ли переменные логина и id пользователя
    if ((isset($_SESSION['login']) or isset($_SESSION['id'])) && $_SESSION['type_users']=='Студент')
    {
 
?>
 
<table width="100%" border="0" cellspacing="5" cellpadding="0">
<tr>
<td colspan="3">
<?php include("blocks/header.php")?>
</td>
</tr>
 
<tr>
<td width="20%" valign="top">
<?php include("blocks/left_block.php")?>
</td>
<td valign="top">
 
<!--Контент сайта -->
 
<?php 
include ("bd.php");
$resource = mysql_query('SELECT * FROM `users` WHERE `type_users` = "Студент" ORDER by `users`.`group`',$db); ?>
 
<table width="100%" border="1" cellspacing="1">
<caption></caption>
  <tr>
    <td colspan="8" align="center">Главная страница<br></td>
  </tr>
<tr>
      <td align="center" width="5%"  height="25px" bgcolor="">Группа</td>
      <td align="center" width="10%" height="25px" bgcolor="">Студент</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тема</td>
      <td align="center" width="15%" height="25px" bgcolor="">Руководитель/<br>Консультант</td>
      <td align="center" width="15%" height="25px" bgcolor="">Язык пр./<br>Среда пр.</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тематика</td>
      <td align="center" width="10%" height="25px" bgcolor="">Файлы</td>
      <td align="center" width="15%" height="25px" bgcolor="">Комментарий</td>
</tr>
    <?php 
{
/**
 * void object2file - функция записи объекта в файл
 *
 * @param mixed value - объект, массив и т.д.
 * @param string filename - имя файла куда будет произведена запись данных
 * @return void
 *
 */
 function object2file($value, $filename)
 {
    $str_value = serialize($value);
    $f = fopen($filename, 'w');
    fwrite($f, $str_value);
    fclose($f); 
 } 
  
 /**
 * mixed object_from_file - функция восстановления данных объекта из файла
 *
 * @param string filename - имя файла откуда будет производиться восстановление данных
 * @return mixed
 *
 */
 function object_from_file($filename)
 {
    $file = file_get_contents($filename);
    $value = @unserialize($file);
    return $value;
 } 
} 
 
 function recursive($dir_s)
  {
   if(is_dir($dir_s))
    {
     $glob=glob($dir_s.'*/');
     if(is_array($glob) && join('',$glob))
      {
       foreach($glob as $filess)
        {
         if(is_dir($filess))
          {
           recursive($filess);
          }
         else if(is_file($filess))
          {
           $filename = 'stats.txt';//файл для хранения
           $array = object_from_file($filename);
           if(isset($_POST['sub']) and isset($_POST['stats']) and !empty($_POST['stats']))
            {
             if($array == false)
              {
               $array=array();
              }
            $array[$_POST['file']]= $_POST['stats'];
            object2file($array,$filename);
           } 
 
          $files = scandir($dir_s); //сканируем (получаем массив файлов)
          array_shift($files); // удаляем из массива '.'
          array_shift($files); // удаляем из массива '..'
 
          for($i=0; $i<sizeof($files); $i++)
           {
            if($array !== false)
             {
              $s=(array_key_exists($files[$i],$array)==true)?$array[$files[$i]]:'';
             }
            else
             {
              $s = '';
             }
           echo '<a href="'.$filess.'" title="Скачать файл"> '.basename($filess).'</a> '.$s.'<br>';
          }}
        }
      }
    }
  }
 
    while($array2 = mysql_fetch_assoc($resource)) : ?>
    <tr>
     <td align="center"><?php echo $array2['group'];  ?></td> <!-- Группа -->
     <td align="center"><?php echo $array2['name']; echo ' '; echo $array2['familiya']; ?></td> <!-- Студенты -->
 
     <td align="center"><?php  
 
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["tema"]); echo "<br>"; //Вывод темы
        }
       }
?></td> <!-- Тема -->
 
 
     <td align="center"><?php 
 
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["rukov"]); echo " / "; print_r($row["konsul"]); echo "<br>";
        }
       }
 
 ?></td> <!-- Руководитель/Консультант -->
 
 
     <td align="center"><?php       $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["yazik"]); echo " / "; print_r($row["sreda"]); echo "<br>"; //Вывод языка/среды программирования
        }
       }
?></td> <!-- Язык пр./Среда пр. -->
 
 
     <td align="center"><?php
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["tematika"]); echo "<br>"; //Вывод тематики
        }
       }
 ?></td> <!-- Тематика -->
 
 
     <td align="center"><?php  
 
 $filename = 'stats.txt';//файл для хранения
 $array = object_from_file($filename);
 
 if(isset($_POST['sub']) and isset($_POST['stats']) and !empty($_POST['stats']))
 {
    if($array == false)
    {
        $array=array();
    }
    $array[$_POST['file']]= $_POST['stats'];
    object2file($array,$filename);
 } 
 
 
 $dir_s='upload/'.$array2['group'].'/'.$array2['login'].'/';
 $dir_s=iconv('utf-8','windows-1251',$dir_s);
 recursive($dir_s);
 
 
?></td> <!-- Файлы ТЗ -->
 
     <td><?php 
 
      $page_id = 111;// Уникальный идентификатор страницы (статьи или поста)
      $name = @$_SESSION['login'];
      $poluchatel = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
      
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
      
      $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id' AND `poluchatel` = " .$array2['id']); //Вытаскиваем все комментарии для данной страницы
 
if($result_set)
{
while ($row = $result_set->fetch_assoc())
      {
?>
    <span style="font-family:Courier; font-size:8pt;">
        <?=$row["name"]?>
        (<?=date("d.m.Y H:i", $row['date'])?>):
    </span> 
    
    <br />
    <?=$row["text_comment"]?>
    <br />
<?php
        }
    }
; ?>
    </td>
    </tr>
 
<?php endwhile ?>
 
</table>
Вот search_result.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
<?php
session_start();
include("bd.php");
include("blocks/header.php");
 
$tema = $_POST["tema"];
 
$resource = mysql_query('SELECT * FROM `users` WHERE `type_users` = "Студент" ORDER by `group`',$db); ?>
<br>
<table width="80%" border="1" cellspacing="1" align="center">
<caption></caption>
  <tr>
    <td colspan="8" align="center">Результаты поиска<br></td>
  </tr>
<tr>
      <td align="center" width="5%"  height="25px" bgcolor="">Группа</td>
      <td align="center" width="10%" height="25px" bgcolor="">Студент</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тема</td>
      <td align="center" width="15%" height="25px" bgcolor="">Руководитель/<br>Консультант</td>
      <td align="center" width="15%" height="25px" bgcolor="">Язык пр./<br>Среда пр.</td>
      <td align="center" width="15%" height="25px" bgcolor="">Тематика</td>
      <td align="center" width="10%" height="25px" bgcolor="">Файлы</td>
      <td align="center" width="15%" height="25px" bgcolor="">Комментарий</td>
</tr>
 
    <?php 
{
/**
 * void object2file - функция записи объекта в файл
 *
 * @param mixed value - объект, массив и т.д.
 * @param string filename - имя файла куда будет произведена запись данных
 * @return void
 *
 */
 function object2file($value, $filename)
 {
    $str_value = serialize($value);
    $f = fopen($filename, 'w');
    fwrite($f, $str_value);
    fclose($f); 
 } 
  
 /**
 * mixed object_from_file - функция восстановления данных объекта из файла
 *
 * @param string filename - имя файла откуда будет производиться восстановление данных
 * @return mixed
 *
 */
 function object_from_file($filename)
 {
    $file = file_get_contents($filename);
    $value = @unserialize($file);
    return $value;
 } 
} 
 
 function recursive($dir)
  {
   if(is_dir($dir))
    {
     $glob=glob($dir.'*/');
     if(is_array($glob) && join('',$glob))
      {
       foreach($glob as $filess)
        {
         if(is_dir($filess))
          {
           recursive($filess);
          }
         else if(is_file($filess))
          {
           $filename = 'stats.txt';//файл для хранения
           $array = object_from_file($filename);
           if(isset($_POST['sub']) and isset($_POST['stats']) and !empty($_POST['stats']))
            {
             if($array == false)
              {
               $array=array();
              }
            $array[$_POST['file']]= $_POST['stats'];
            object2file($array,$filename);
           } 
 
          $files = scandir($dir); //сканируем (получаем массив файлов)
          array_shift($files); // удаляем из массива '.'
          array_shift($files); // удаляем из массива '..'
 
          for($i=0; $i<sizeof($files); $i++)
           {
            if($array !== false)
             {
              $s=(array_key_exists($files[$i],$array)==true)?$array[$files[$i]]:'';
             }
            else
             {
              $s = '';
             }
           echo '<a href="'.$filess.'" title="Скачать файл"> '.basename($filess).'<br></a> '.$s.'
            <form method="post" name="">
            <select name="stats"></option>
            <option selected disabled>Выберите статус...
            <option value="Выполнено">Выполнено
            <option value="Не выполнено">Не выполнено
            </select>
            <input type="hidden" name="file" value="'.basename($filess).'">
            <input type="submit" name="sub"> 
            <input type="hidden" name="login" value="<?php echo $_SESSION[login]?>"></form>
           <form action="delete.php" method="post"><button name="path" value="'.$filess.'"><img style="width: 15px;" src="/css/delete.png" title="Удалить файл"></button></form><br>';
          }}
        }
      }
    }
  }  if(!$resource){  die(mysql_error());   } 
    while($array2 = mysql_fetch_assoc($resource)) : ?>
    <tr>
     <td align="center"><?php echo $array2['group'];  ?></td> <!-- Группа -->
     <td align="center"><?php echo $array2['name']; echo ' '; echo $array2['familiya']; ?></td> <!-- Студенты -->
 
     <td align="center"><?php  
 
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `tema` LIKE '%".strtoupper($tema)."%' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["tema"]); echo "<br>"; //Вывод темы
        }
       }
?></td> <!-- Тема -->
 
 
     <td align="center"><?php 
 
      $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["rukov"]); echo " / "; print_r($row["konsul"]); echo "<br>";
        }
       }
 
 ?></td> <!-- Руководитель/Консультант -->
 
 
     <td align="center"><?php       $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["yazik"]); echo " / "; print_r($row["sreda"]); echo "<br>"; //Вывод языка/среды программирования
        }
       }
?></td> <!-- Язык пр./Среда пр. -->
 
 
     <td align="center"><?php       $file_id = 555;// Уникальный идентификатор
      $name = @$_SESSION['login'];
      $poluchatel_file = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
 
      $result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
 
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         print_r($row["tematika"]); echo "<br>"; //Вывод тематики
        }
       }
 ?></td> <!-- Тематика -->
 
 
     <td align="center"><?php 
 
 
 $filename = 'stats.txt';//файл для хранения
 $array = object_from_file($filename);
 
 if(isset($_POST['sub']) and isset($_POST['stats']) and !empty($_POST['stats']))
 {
    if($array == false)
    {
        $array=array();
    }
    $array[$_POST['file']]= $_POST['stats'];
    object2file($array,$filename);
 } 
 
 $dir='upload/'.$array2['group'].'/'.$array2['login'].'/';
 $dir=iconv('utf-8','windows-1251',$dir);
 recursive($dir);
 
?></td>
 
     <td><?php 
 
      $page_id = 111;// Уникальный идентификатор страницы (статьи или поста)
      $name = @$_SESSION['login'];
      $poluchatel = $array2['id'];// id пользователя, для которого предназначается комментарий
      $mysqli = new mysqli("данные для подключения");// Подключается к базе данных
      
 
      $mysqli->query("SET CHARACTER_SET_client='cp1251'");
      $mysqli->query("SET CHARACTER_SET_results='cp1251'");
      $mysqli->query("SET collation_connection='cp1251_general_ci'");
      
      $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id' AND `poluchatel` = " .$array2['id']); //Вытаскиваем все комментарии для данной страницы
 
if($result_set)
{
while ($row = $result_set->fetch_assoc())
      {
?>
    <span style="font-family:Courier; font-size:8pt;">
        <?=$row["name"]?>
        (<?=date("d.m.Y H:i", $row['date'])?>):
    </span> 
    
    <br />
    <?=$row["text_comment"]?>
    <br />
<?php
        }
    }
 
      echo "
      <form name='comment' action='comment.php' method='post'>
       <p>    <!--  <label>Имя:</label> -->
       <!--   <input type='text' name='name' /> -->
      <input type='hidden' name='name' value='$_SESSION[login]' />
      <input type='hidden' name='id' value='$poluchatel' /></p>
      <p>
       <label><font face='Courier' size='2px'>Оставить комментарий:</font></label>
       <br>
       <textarea name='text_comment' cols='25px' rows='1px'></textarea>
       <input type='hidden' name='page_id' value='111' />
       <input type='submit' value='Отправить' /></p>
      </form>"; ?>
    </td>
    </tr>
 
<?php endwhile ?>
 
</table>
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 20:19 7
Цитата Сообщение от TheRealKos Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
$result_set = $mysqli->query("SELECT * FROM `files` WHERE `file_id`='$file_id' AND `tema` LIKE '%".strtoupper($tema)."%' AND `poluchatel_file` = " .$array2['id']); //Вытаскиваем все данные для данного файла
if($result_set)
* * * *{
* * * * while ($row = $result_set->fetch_assoc())
* * * * {
* * * * *print_r($row["tema"]); echo "<br>"; //Вывод темы
* * * * }
* * * *}
PHP
1
2
3
4
5
6
7
8
9
10
11
$sql = "SELECT * FROM `files` WHERE `file_id`='$file_id' AND `tema` LIKE '%".strtoupper($tema)."%' AND `poluchatel_file` = " .$array2['id'];
echo 'SQL: &nbsp;&nbsp; ', $sql;
$result_set = $mysqli->query($sql); //Вытаскиваем все данные для данного файла
$result_set || exit('Failed');
      if($result_set)
       {
        while ($row = $result_set->fetch_assoc())
        {
         var_dump($row["tema"]); echo "<br>"; //Вывод темы
        }
       }
что выводится?
И было бы хорошо структуру БД глянуть..
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 20:26  [ТС] 8
Цитата Сообщение от KOPOJI Посмотреть сообщение
что выводится?
SQL: SELECT * FROM `files` WHERE `file_id`='555' AND `tema` LIKE '%123%' AND `poluchatel_file` = 1 (ну и здесь у каждого своя цифра)

Цитата Сообщение от KOPOJI Посмотреть сообщение
И было бы хорошо структуру БД глянуть..
Пользователи
На сайте есть таблица. Сделать поиск с выводом результатов в подобную таблицу
Файлы
На сайте есть таблица. Сделать поиск с выводом результатов в подобную таблицу
Комментарии
На сайте есть таблица. Сделать поиск с выводом результатов в подобную таблицу
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 20:28  [ТС] 9
Сделал поиск с существующей темой (Архив ТЗ), ввел просто Архив, вывело SQL: SELECT * FROM `files` WHERE `file_id`='555' AND `tema` LIKE '%архив%' AND `poluchatel_file` = 1string(8) "Архив ТЗ". Но так же вывел остальных и у них подобное тому, что было выше
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 20:36 10
Цитата Сообщение от TheRealKos Посмотреть сообщение
string(8) "Архив ТЗ"
и больше ничего подобного не было? Значит только одну запись и нашел, а выводит остальных в другом месте скрипта

Добавлено через 2 минуты
Запрос поменяйте на такой
SQL
1
SELECT COUNT(1) FROM `files` WHERE `file_id`='555' AND `tema` LIKE '%архив%' AND `poluchatel_file` = 1
код на такой
PHP
1
2
$row = $result_set->fetch_array(MYSQLI_NUM);
exit('<h1>' . $row[0] . '</h1>');
Выводит единицу?
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 20:37  [ТС] 11
Цитата Сообщение от KOPOJI Посмотреть сообщение
и больше ничего подобного не было? Значит только одну запись и нашел
НУ да, только одна тема в принципе

Как убрать вот эту строчку SQL: SELECT * FROM `files` WHERE `file_id`='555' AND `tema` LIKE '%123%' AND `poluchatel_file` = 1 я сделал. А вот где убрать string(8) и чтобы не в кавычках название было не совсем понял
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 20:38 12
З.Ы. вообще, как-то слишком много всего, тяжело разобраться. Должно быть все намного проще. Заполнение таблицы выносите в отдельную часть-шаблон, меняющуюся внутри цикла часть еще в один шаблон. Запрос и т.д. у вас один и тот же, по сути - следовательно, все это можно сократить в разы

Добавлено через 29 секунд
Цитата Сообщение от TheRealKos Посмотреть сообщение
А вот где убрать string(8)
замените var_dump на echo
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 20:40  [ТС] 13
Цитата Сообщение от KOPOJI Посмотреть сообщение
Выводит единицу?
Вывести вывело, НО дальше ничего не пошло
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 20:41 14
TheRealKos, все верно.. Это было для проверки того, сколько записей находит - находит, как и положено, одну..
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 20:48  [ТС] 15
Цитата Сообщение от KOPOJI Посмотреть сообщение
все это можно сократить в разы
Понимаю, что нужно очень много менять и оптимизировать, но пока делаю как умею (надеюсь потом все же смогу оптимизировать).

И можно еще вопрос, в каком месте указать условие, чтобы выводились те пользователи с их данными, а не все сразу. И что бы если ни чего не находилось, он не делал поле Тема пустым.

Добавлено через 4 минуты
Хм...тот код что у меня был, и та модификация кода которую вы дали, результат один дает
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 21:15 16
Цитата Сообщение от TheRealKos Посмотреть сообщение
результат один дает
потому что я и не давал никаких исправлений, это все был проверочный код.
В коде очень тяжело разобраться. Неужели он настолько сильно различается, что необходимо дублировать по несколько раз одно и тоже? Ядреная смесь..
Насколько я понимаю - на этом сайте есть только вывод данных из таблицы в БД в таблицу на сайте, так? Причем это один и тот же вывод, что при поиске, что по-обычному - различаются только сами запросы?
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 21:17  [ТС] 17
Цитата Сообщение от KOPOJI Посмотреть сообщение
Причем это один и тот же вывод, что при поиске, что по-обычному - различаются только сами запросы?
Все верно
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16774 / 6660 / 871
Регистрация: 12.06.2012
Сообщений: 19,899
Завершенные тесты: 1
18.02.2014, 21:28 18
Ну тогда избавьтесь от различий и дублирования. Переделайте все, к примеру, таким образом:
Выносите в отдельный файл этот код
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<head>
    <title><?php echo $title; ?></title>
</head>
<body>
<table width="100%" border="0" cellspacing="5" cellpadding="0">
    <tr>
        <td colspan="3">
            <?php include './blocks/header.php'; ?>
        </td>
    </tr>
 
    <tr>
        <td width="20%" valign="top">
            <?php include './blocks/left_block.php'; ?>
        </td>
        <td valign="top">
            <!--Контент сайта -->
            <?php include './table.php'; ?>
        </td>
    </tr>
</table>
</body>
</html>
Создаете разные файлы search.php и index.php (а можно и в одном)
Затем пишете нечто наподобие такого
PHP
1
2
3
4
5
6
7
8
9
10
<?php
$title = 'Main page';
include './bd.php';
$sql = 'SELECT * FROM ....'; //запрос на выборку из БД
//выполняем запрос
//....
if($mysqli->num_rows() > 0)
    include './file.php'; //путь к файлу с главным шаблоном (из кода выше)
else
    echo 'Ничего не найдено..';
В файле с поиском тот же самый код, только проверяете на существование GET-параметры и, соответственно, изменяете сам запрос в зависимости от того, что ищут

В третьем файле, table.php, храните нечто наподобие такого
PHP/HTML
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
<table width="80%" border="1" cellspacing="1" align="center">
    <tr>
        <td colspan="8" align="center">Результаты поиска<br></td>
    </tr>
    <tr>
        <td align="center" width="5%"  height="25px" bgcolor="">Группа</td>
        <td align="center" width="10%" height="25px" bgcolor="">Студент</td>
        <td align="center" width="15%" height="25px" bgcolor="">Тема</td>
        <td align="center" width="15%" height="25px" bgcolor="">Руководитель/<br>Консультант</td>
        <td align="center" width="15%" height="25px" bgcolor="">Язык пр./<br>Среда пр.</td>
        <td align="center" width="15%" height="25px" bgcolor="">Тематика</td>
        <td align="center" width="10%" height="25px" bgcolor="">Файлы</td>
        <td align="center" width="15%" height="25px" bgcolor="">Комментарий</td>
    </tr>
 
    <?php while($array = $res->fetch_assoc()) : ?>
    
        <tr>
            <td align="center">
                <?php echo $array['group'];  ?>
            </td> <!-- Группа -->
            <td align="center">
                <?php echo $array['name'], ' ', $array['familiya']; ?>
            </td> <!-- Студенты -->
 
            <td align="center">
                <?php  
                $file_id = (int) 555;// Уникальный идентификатор
                $receiver_id = (int) $array['id'];// id пользователя, для которого предназначается комментарий
                
                $result = $mysqli->query('SELECT * FROM `files` WHERE `file_id`='.$file_id.' AND `poluchatel_file`='.$receiver_id); //Вытаскиваем все данные для данного файла
 
                while ($row = $result_set->fetch_assoc())
                    echo $row['tema'], '<br>'; //Вывод темы ?>
            </td> <!-- Тема -->
.......................
        </tr>
    <?php endwhile; ?>
</table>
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
18.02.2014, 21:35  [ТС] 19
Цитата Сообщение от KOPOJI Посмотреть сообщение
проверяете на существование GET-параметры и, соответственно, изменяете сам запрос в зависимости от того, что ищут
А можно пример с моим говнокодом, хотя бы той же темы. И какое примерно условие нужно, чтобы выводились только те, у кого есть данная запись, а у кого ее нет, соответственно не выводились
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 533
20.02.2014, 08:59  [ТС] 20
Ех...
0
20.02.2014, 08:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2014, 08:59

Поиск по сайту с постраничным выводом результатов
Здравствуйте. при создании поиска столкнулся с некоторой проблемой При использовании...

Нужно сделать подобную прогу (есть exe файл)
Нужно сделать прогу на exe файл. Хочу поменять там пару моментов, но исходник был утерян, остался...

поиск с выводом полученных результатов на другом листе и предварительным просмотром PDF файла
Всех приветствую! Нуждаюсь в помощи гуру, ибо у самого пока ничего не выходит. Исходное: Имеется...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.