Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ещё один вопрос по поиску на php (база MS SQL SERVER 2000)  (Прочитано 6750 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« : 07-06-2009 10:46 » 

В этой теме вы помогли мне решить задачу по поиску по 1 таблице в БД (https://forum.shelek.ru/index.php/topic,20785.0.html)

у меня есть БД в Microsoft SQL Server 2000. В ней 34 таблицы. На главной странице сайта есть форма для поиска.  По идее нужно сделать запрос на выбор значений из таблицы которые совпадают с искомым словом. Для этого нужно получить список таблиц и затем, в цикле, подставлять имена таблиц в запрос и выводить информацию из таблиц соответствующую искомому слову. По логике вроде всё верно. Мне проеподаватель в институте тоже так сказал делать. Но вот в чём проблема. Я пишу код, но ничего не получается. Похоже я что-то напутала с функциями, да и с самим циклом.....
Вот мой код:

Цитата
<?php
error_reporting(E_ERROR);
//Соединение с базой данных MySQL
$conn=odbc_connect('KatalogSQL','PROMEK','promek');
if (!$conn) {   
    exit("Connection Failed: " . $conn);
}
// Получение списка баз данных, находящихся на сервере
$list_bd = mysql_list_dbs();
$name_bd=mysql_tablename($list_bd); // возращает имена баз данных
$list_tab=mysql_list_tables($conn); // возращает список таблиц находящихся в базе данных
$koll_tab=mysql_num_rows($list_tab); // возращает количество таблиц в списке
$name_tab = mysql_tablename($list_tab);//возращает имена таблиц

for ($i=0; $i<$koll_tab; $i++){
echo "234";
    $_POST['search'] =  substr(htmlspecialchars(trim($_POST['search'])), 0, 100);
    $sql = "SELECT * FROM '.$name_tab.' WHERE Name LIKE '%".$_POST['search']."%' ";
    $rs=mysql_query($conn,$sql);
    $nf=mysql_num_fields($rs);
    if (!$rs) {
         exit("Error in SQL");
    }
     echo "<table border=1";
    //заголовок таблицы
    echo "<tr>";
    for($i=0; $i<$nf;$i++){
       $field=mysql_field_name($rs,$i);
       echo "<th>".$field."</th>";
    }
    echo "</tr>";
    while(mysql_fetch_row($rs)){
       echo "<tr>";
       for($j=0;$j<$nf;$j++){
          $val=mysql_result($rs,$j);
          echo "<td>".$val."</td> ";
       }
      echo "</tr>";
    }
}
echo "</table>";
mysql_free_result($rs);
mysql_close($conn);
?>

Помогите разобраться....
« Последнее редактирование: 07-06-2009 16:35 от Tatyana » Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 08-06-2009 13:20 » 

 в каком месте проблема?
не получаешь список таблиц,
не обрабатываются запросы?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Tatyana
Участник

ru
Offline Offline
Пол: Женский

« Ответ #2 : 13-06-2009 10:39 » 

Вопрос решен. Тему можно считать закрытой
Записан

Smile, though your heart is aching
Smile, even though it's breaking ©
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines