Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 9

Поиск в MS Access средствами PHP

20.05.2011, 03:16. Показов 1512. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, сабж. Есть файл mdb с некоторым набором таблиц, есть задача сделать поиск по таблице.
Кусок кода с главной страницы:
HTML5
1
2
3
4
<form action="search_emp.php" method="post">
<input type="text" name="occ" value="Введите специальность"/>
<input  type="submit" value="Поиск"/>
</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
<?php
 $x = odbc_connect("test", "", "");
 
$occ = $_REQUEST['occ'];
$query = "Select * from Резюме WHERE Специализация = $occ";
$result= odbc_num_rows($query);
echo $result;
 
 
if ($result == 0)
{
echo "Sorry, I couldn't find any result that matches your query ($occ)";
exit;    
}
else if ($result == 1)
{
echo "I've found <b>1</b> match!<br>";
}
else {
echo "I've found <b>$result</b> matches! <br>";
}
while ($row= odbc_fetch_array($query))
{
$first_name= $row["ФИО"];
 
echo "The first name of the user is: $first_name.<br>";
 
}
?>
При попытке поиска вылетает ошибка "Warning: odbc_num_rows() expects parameter 1 to be resource, string given". Разумеется, нифига найти невозможно
Жду идей
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2011, 03:16
Ответы с готовыми решениями:

Сложный поиск в форме Access Средствами VBA
Здравствуйте, подскажите если есть возможность. Ситуация такая, есть форма, на ней отображаются данные одной записи, переход между записями...

Расширенный поиск в БД средствами PHP
Здравствуйте! ПОдскажите пожалуйста как закончить расширенный поиск // беру переменные из формы $vvAuthor =trim($_POST); $vvTitle...

Поиск файла средствами php на сайте
Добрый день, хочу написать свою CMS и потихоньку собираю разные идеи, вот одна из них, подскажите как можно сделать функцию, которая бы...

6
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
20.05.2011, 09:28
Так написано ведь... в odbc_num_rows() надо передавать ресурс, а не строку.
Может сначала стоит выполнить запрос?
0
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
20.05.2011, 09:30
попробуй:
SQL
1
$query = "SELECT * FROM `Резюме` WHERE `Специализация` = \"$occ\" ";
может $occ ничего не содержит?
0
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 9
20.05.2011, 15:08  [ТС]
Цитата Сообщение от FunDuck Посмотреть сообщение
Так написано ведь... в odbc_num_rows() надо передавать ресурс, а не строку.
Может сначала стоит выполнить запрос?
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
$occ = $_REQUEST['occ'];
$query = "SELECT * FROM `Резюме` WHERE `Специализация` = \"$occ\" ";
$res = odbc_prepare($x,$query);
 
$result = odbc_num_rows($res);
 
if ($result == 0)
{
echo "Sorry, I couldn't find any user that matches your query ($occ)";
exit;   
}
else if ($result == 1)
{
echo "I've found <b>1</b> match!<br>";
}
else {
echo "I've found <b>$result</b> matches! <br>";
}
 
while ($row= odbc_fetch_array($res))
{
$first_name= $row["ФИО"];
 
echo $first_name;
}
В этом варианте выводится только количество результатов $result, а $first_name нету.
Возможно, я запутался в порядке odbc-функций, т.к. их поведение слегка удивляет.
Есть идеи, в каком порядке/как реорганизовать получение результатов?
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
20.05.2011, 18:41
Да вроде с порядком все в порядке)
Возможно разные кодировки в базе и php скрипте? Поэтому лучше не использовать русский для названия таблиц и столбцов.
0
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 9
21.05.2011, 03:56  [ТС]
Там дело даже не в кодировке. Пока переписываю обработчик с ноля.
Если верить php.su, то функция odbc_num_rows после запроса SELECT с параметром WHERE ВСЕГДА даёт в результате количество рядов -1. Потому и проблемы. Запрос, кстати, тоже синтаксически неправильный.
В общем, перепишу — скину
0
0 / 0 / 0
Регистрация: 20.05.2011
Сообщений: 9
22.05.2011, 18:20  [ТС]
Переделал, не без костылей и матов в адрес Мракософта.

Код обработчика:
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
<?php
function xodbc_num_rows($sql_id, $CurrRow = 0) 
{ 
 $NumRecords = 0; 
 odbc_fetch_row($sql_id, 0); 
 while (odbc_fetch_row($sql_id)) 
 { 
  $NumRecords++; 
 } 
 odbc_fetch_row($sql_id, $CurrRow); 
 return $NumRecords; 
}
$occ = $_REQUEST['occ'];
$connect = odbc_connect("test", "", "");
$query = "SELECT * FROM Resume WHERE Spec like '%".$occ."%' " ;
 
$result = odbc_exec($connect, $query);
 
$cnt = xodbc_num_rows($result);
echo "По запросу <b>$occ</b> найдено " .$cnt . " результатов.";
?>
<center><h2>Резюме соискателей</h2></center>
<table border=1 cellspacing=0 cellpadding=4>
<tr><td>ФИО</td><td>Вакансия</td><td>Возраст</td><td>Телефон</td>
<td>Город</td><td>Опыт работы</td><td>Зарплата</td>
<td>Личные качества</td>
<td>E-mail</td>
<td>Владение языками</td>
<td>Цель</td>
<td>Профессиональные качества</td>
</tr>
<? 
for($i = 0; $i < $cnt; $i ++)
{
    $row = odbc_fetch_array($result, $i+1);
    echo '<tr><td>'.$row['ФИО'].'</td><td>';  
  echo $row['Spec'].'</td><td>'.$row['Возраст'].' лет</td>';
  echo '<td>'.$row['Телефон'].'</td><td>'.$row['МестоПроживания'].'</td>';
  echo '<td>'.$row['ОпытРаботы'].'</td><td>от '.$row['Зарплата'].' гривен</td>';
  echo '<td>'.$row['ЛичныеКачества'].'</td><td>'.$row['ЭлектроннаяПочта'].'</td>';
  echo '<td>'.$row['ВладениеЯзыками'].'</td><td>'.$row['Цель'].'</td>';
  echo '<td>'.$row['ПрофессиональныеНавыки'].'</td>';  
     
};
?>
Отдельно хочется акцентировать внимание на самом запросе:
PHP
1
$query = "SELECT * FROM Resume WHERE Spec like '%".$occ."%' " ;
Всем спасибо, всё работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2011, 18:20
Помогаю со студенческими работами здесь

Поиск в исходном коде страницы средствами php
Мне нужно найти слово Купон на странице, в гугле везде один и тот же пример, но он почему то у меня не находит Вот как пробую ...

Поиск всех атрибутов заданных тегов средствами PHP
Доброго дня. Столкнулся со следующей задачей. Есть html код. Есть список тегов (div body tr td и тд.) Затем в файл div.txt...

Средствами PHP и с использованием ООП php создать реализацию следующего интерфейса:
interface ArrayHelperInterface extends IteratorAggregate, ArrayAccess, Countable { /** * @param...

Файл с кодом php средствами php
Товарищи! Есть задача при помощи php кода (например, файл 1.php) создавать файл с php кодом и записывать его на сервер (например, 2.php)....

Обработка бд Access средствами VB
обьясните пожалуйста вот такая вот задачка Создать бд с таблицами: 1 название фильма,компания-производитель,фамилия режиссера, фамилия...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru