Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 10:46   #1
DJ DIMON
Пользователь
 
Аватар для DJ DIMON
 
Регистрация: 05.12.2008
Сообщений: 31
По умолчанию поиск по БД

приветствую всех.. я новичок- помоги очень нужно выполнить задание. Задача заключается в создании бд, подключении к php, и организации поиска. С первыми двумя пунктами я вроде бы разобрался, а вот с поиском проблемы, прошу помощи.
Нужно организовать поиск по бд по полю фамилия (fio)
PHP код:
<html>
<body>
<CENTER><h2>Телефонные Разговоры</h2></CENTER>
 
      <?php
         $db 
mysql_connect("localhost""root");
         
mysql_select_db("new_db",$db);
 
        
$sql "SELECT * FROM `table`";
$table "<table border=1 width=100% align=center>\n"
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
while (
$row mysql_fetch_assoc($result))
{
      
 
   
$table .= "<tr> 
  \n"
;
     
$table .= "<td>".$row['fio']."</td>\n";  
     
$table .= "<td>".$row['ichod']."</td>\n";
     
$table .= "<td>".$row['dlitel']."</td>\n";
     
$table .= "<td>".$row['cena_min']."</td>\n";
     
$table .= "<td>".$row['tel_abon']."</td>\n";
     
$table .= "<td>".$row['tel_adress']."</td>\n";
     
$table .= "<td>".$row['chet']."</td>\n";
     
$table .= "<td>".$row['data_chet']."</td>\n";
     
$table .= "<td>".$row['data_raz']."</td>\n";
     
$table .= "</tr>\n";
}
 
$table .= "</table>\n";
 
echo 
$table;
      
?>
 
 
<?
                ПОИСК
:<input type="Text" name="Search"><br>
          <
input type="Submit" name="submit" value="Поиск Информации">
mysql_select_db;
if (isset(
mysql_query("SELECT * FROM таблица WHERE fio='loker'")) echo "$row['fio']";
?>
 
 
 
 
</body>
</html>
DJ DIMON вне форума Ответить с цитированием
Старый 31.03.2011, 12:42   #2
KPEATuBHO
Форумчанин
 
Аватар для KPEATuBHO
 
Регистрация: 03.09.2010
Сообщений: 197
По умолчанию

Не знаю как другие люди, но работая с таблицами в которых количество записей не большое, с целью улучшения качества поиска я делаю следующим образом:
1) вытаскиваю все значения из таблицы в массивы;
2) циклом пробегаюсь по нужному массиву, в котором ищу вхождение введенной строки (важно привести в один вид и введенную строку и значение текущего элемента массива (strtolower например)), если вхождение найдено то вывожу, не найдено - не вывожу)
KPEATuBHO вне форума Ответить с цитированием
Старый 31.03.2011, 12:57   #3
DJ DIMON
Пользователь
 
Аватар для DJ DIMON
 
Регистрация: 05.12.2008
Сообщений: 31
По умолчанию

с синтаксисом не поможите?
DJ DIMON вне форума Ответить с цитированием
Старый 31.03.2011, 14:45   #4
KPEATuBHO
Форумчанин
 
Аватар для KPEATuBHO
 
Регистрация: 03.09.2010
Сообщений: 197
По умолчанию

Код:
$db = mysql_connect("localhost", "root");
mysql_select_db("new_db",$db); 
$sql = "SELECT * FROM `table`";
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
while ($row = mysql_fetch_assoc($result)) {
if (substr_count(strtolower($row['fio']),strtolower(htmlspecialchars($_REQUEST['Search'])))!=0) { $returns[]=$row; }
}
foreach ($returns as $return) {
echo $return['filo']." ".$return['ichod']." ".$return['dlitel']." ".$return['cena_min']." ".$return['tel_abon']." ".$return['tel_adress']." ".$return['chet']." ".$return['data_chet']." ".$return['data_raz'];
}
Это скрипт, в который будут отправляться данные формы поиска.
KPEATuBHO вне форума Ответить с цитированием
Старый 31.03.2011, 15:33   #5
DJ DIMON
Пользователь
 
Аватар для DJ DIMON
 
Регистрация: 05.12.2008
Сообщений: 31
По умолчанию

Цитата:
Сообщение от KPEATuBHO Посмотреть сообщение
Код:
$db = mysql_connect("localhost", "root");
mysql_select_db("new_db",$db); 
$sql = "SELECT * FROM `table`";
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
while ($row = mysql_fetch_assoc($result)) {
if (substr_count(strtolower($row['fio']),strtolower(htmlspecialchars($_REQUEST['Search'])))!=0) { $returns[]=$row; }
}
foreach ($returns as $return) {
echo $return['filo']." ".$return['ichod']." ".$return['dlitel']." ".$return['cena_min']." ".$return['tel_abon']." ".$return['tel_adress']." ".$return['chet']." ".$return['data_chet']." ".$return['data_raz'];
}
Это скрипт, в который будут отправляться данные формы поиска.
Этот скрип я вставляю в другой файл, а оттуда делаю ссылку? я так понимаю? если да то он выдает
Warning: substr_count() [function.substr-count]: Empty substring in Z:\home\localhost\www\2.php on line 9

Warning: substr_count() [function.substr-count]: Empty substring in Z:\home\localhost\www\2.php on line 9

Warning: substr_count() [function.substr-count]: Empty substring in Z:\home\localhost\www\2.php on line 9

Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\2.php on line 11


или его нужно вставить в этот же скрипт?
Помогите пожалуйста очень нужно
И еще вопрос если не затруднит, не могу сделать заголовки у таблицы, выводятся сразу сами значения Очень нужна помощь!!!! Help
DJ DIMON вне форума Ответить с цитированием
Старый 31.03.2011, 16:15   #6
KPEATuBHO
Форумчанин
 
Аватар для KPEATuBHO
 
Регистрация: 03.09.2010
Сообщений: 197
По умолчанию

PHP код:
<html>
<body>
<CENTER><h2>Телефонные Разговоры</h2></CENTER>
 
      <?php
         $db 
mysql_connect("localhost""root");
         
mysql_select_db("new_db",$db);
 
        
$sql "SELECT * FROM `table`";
$table "<table border=1 width=100% align=center>\n"
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
while (
$row mysql_fetch_assoc($result))
{
      
 
   
$table .= "<tr> 
  \n"
;
     
$table .= "<td>".$row['fio']."</td>\n";  
     
$table .= "<td>".$row['ichod']."</td>\n";
     
$table .= "<td>".$row['dlitel']."</td>\n";
     
$table .= "<td>".$row['cena_min']."</td>\n";
     
$table .= "<td>".$row['tel_abon']."</td>\n";
     
$table .= "<td>".$row['tel_adress']."</td>\n";
     
$table .= "<td>".$row['chet']."</td>\n";
     
$table .= "<td>".$row['data_chet']."</td>\n";
     
$table .= "<td>".$row['data_raz']."</td>\n";
     
$table .= "</tr>\n";
}
 
$table .= "</table>\n";
 
echo 
$table;
      
?>
 
 
<?
<form action="find.php" method="POST">
                
ПОИСК:<input type="Text" name="Search"><br>
          <
input type="Submit" name="submit" value="Поиск Информации">
</
form>
?>
 
 
 
 
</body>
</html>
допустим это файл 1.php

PHP код:
<?
$db 
mysql_connect("localhost""root");
mysql_select_db("new_db",$db); 
$sql "SELECT * FROM `table`";
$result mysql_query($sql) or die(mysql_error() ."<br/>"$sql);
while (
$row mysql_fetch_assoc($result)) {
if (
substr_count(strtolower($row['fio']),strtolower(htmlspecialchars($_REQUEST['Search'])))!=0) { $returns[]=$row; }
}
foreach (
$returns as $return) {
echo 
$return['filo']." ".$return['ichod']." ".$return['dlitel']." ".$return['cena_min']." ".$return['tel_abon']." ".$return['tel_adress']." ".$return['chet']." ".$return['data_chet']." ".$return['data_raz'];
}
?>
это файл find.php.

открываем в браузере 1.php, в инпуте вводите фамилию и жмакайте кнопку - будет произведена выборка по той фамилии которую ввели и выведена на экран.)

Далее, что там с заголовком:

PHP код:
$table "<table border=1 width=100% align=center>\n"
это меняем на

PHP код:
$table "<table border=1 width=100% align=center><tr><td>Заголовок 1</td><td>Заголовок 2</td><td>Заголовок 3</td><td>Заголовок 4</td><td>Заголовок 5</td><td>Заголовок 6</td><td>Заголовок 7</td><td>Заголовок 8</td><td>Заголовок 9</td></tr>\n"
KPEATuBHO вне форума Ответить с цитированием
Старый 31.03.2011, 17:02   #7
DJ DIMON
Пользователь
 
Аватар для DJ DIMON
 
Регистрация: 05.12.2008
Сообщений: 31
По умолчанию

создал 2 файла, сделал как написано, в заголовками получилось!
А вот при запуске 1.php выдает ошибку в 36 линии это вроде тут
Код:
echo $table;
а если убрать
Код:
<?
<form action="find.php" method="POST">
                ПОИСК:<input type="Text" name="Search"><br>
          <input type="Submit" name="submit" value="Поиск Информации">
</form>
?>
то код выполняется и выводит таблицу
файл find.php отдельно не запускается, может в нем проблема???
А его не нужно еще как-то объявить перед вызовом?
DJ DIMON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в БД Lomka БД в Delphi 1 24.11.2009 23:18
поиск Screame Microsoft Office Excel 11 20.08.2009 12:42
Поиск Witaliy Общие вопросы Delphi 1 01.05.2008 18:42
Поиск Volkogriz Общие вопросы Delphi 5 22.04.2008 10:59
поиск Lonix Общие вопросы Delphi 2 04.04.2007 01:59