Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Поиск в таблице mysql через формы+php

Ответить
Настройки темы
[решено] Поиск в таблице mysql через формы+php

Старожил


Сообщения: 252
Благодарности: 3

Профиль | Отправить PM | Цитировать


Создал форму где 13 форм типа text, каждая соответствует определённому сталбцу таблицы, форма применяет скрипт:

PHP код: Выделить весь код

<?php 

require_once "zashita.php";
require_once 
"bdconnect.php";
 
mysql_query("SET NAMES cp1251");
$sSQL="SELECT * FROM `dogovor`, `bank`, `periodichnost`, `sposob_oplati`, `sposob_peredachi`, `status`, `vid_billinga`, `vid_oplati` WHERE dogovor.bank_id=bank.id_bank and dogovor.periodichnost_id=periodichnost.id_periodichnost and dogovor.sposob_oplati_id=sposob_oplati.id_sposob_oplati and dogovor.sposob_peredachi_id=sposob_peredachi.id_sposob_peredachi and dogovor.status_id=status.id_status and dogovor.vid_billinga_id=vid_billinga.id_vid_billinga and dogovor.vid_oplati_id=vid_oplati.id_vid_oplati and dogovor.date_dog='$date_dog' and dogovor.n_dog LIKE '%$n_dog%' and dogovor.name_org LIKE '%$name_org%' and dogovor.komissia='$komissia' and dogovor.dop_sogl='$dop_sogl' and dogovor.inn='$inn' and dogovor.r_schet='$r_schet' and dogovor.boss='$boss' and dogovor.kontakt_l='$kontakt_l' and dogovor.kont_phone='$kont_phone' and dogovor.adres='$adres' and dogovor.primech='$primech' and dogovor.e_mail='$e_mail'";
$result=mysql_query($sSQL$link);
if (
mysql_num_rows($result) == 0) echo"Результат запроса : 0";else
if (
mysql_num_rows($result) > 0
while ( 
$myrow mysql_fetch_array($result) ):
?>

Дело в том что данный скрипт ни чего не хочет находить. Если мы оставим только одино значение например

PHP код: Выделить весь код

dogovor.n_dog LIKE '%$n_dog%' 


он работает, я подумал может нужно в место and нужно применить or т.е. "или" но он показывает в результате всю таблицу да и ещё одну строку несколько раз!
Знаю что если я сделаю банальный sql запрос он будет работать но как этот принцип применить в php?
Может стоит в одной странице сделать 13 форм с различным вариантом поиска, и пусть клиент сам решает что и где искать!? Это конечно выход, но....

Отправлено: 12:27, 11-05-2012

 

Старожил


Сообщения: 252
Благодарности: 3

Профиль | Отправить PM | Цитировать


Я уже запутался и жалею что решил это сделать!

Отправлено: 10:54, 18-05-2012 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 252
Благодарности: 3

Профиль | Отправить PM | Цитировать


У меня получилось вот что:
PHP код: Выделить весь код

<?php 
require_once "bdconnect.php";
require_once 
"zashita.php";

if (isset(
$_REQUEST[n_dog])) $n_dog $_REQUEST['n_dog']; else $n_dog 0;
//echo "$n_dog";
if (isset($_REQUEST[date_dog])) $date_dog $_REQUEST['date_dog']; else $date_dog 0;
if (isset(
$_REQUEST[name_org])) $name_org $_REQUEST['name_org']; else $name_org 0
echo 
"$name_org";
if (isset(
$_REQUEST[komissia])) $komissia $_REQUEST['komissia']; else $komissia 0;
echo 
"$komissia";
if (isset(
$_REQUEST[dop_sogl])) $dop_sogl $_REQUEST['dop_sogl']; else $dop_sogl 0;
echo 
"$dop_sogl";
if (isset(
$_GET[inn])) $inn intval($_GET['inn']); else $inn 0;
echo 
"$inn";
if (isset(
$_GET[r_schet])) $r_schet intval($_GET['r_schet']); else $r_schet 0;
echo 
"$r_schet";
if (isset(
$_REQUEST[boss])) $boss $_REQUEST['boss']; else $boss 0
echo 
"$boss";
if (isset(
$_REQUEST[kontakt_l])) $kontakt_l $_REQUEST['kontakt_l']; else $kontakt_l 0;
echo 
"$kontakt_l";
if (isset(
$_REQUEST[kont_phone])) $kont_phone $_REQUEST['kont_phone']; else $kont_phone 0;
echo 
"$kont_phone";
if (isset(
$_REQUEST[adres])) $adres $_REQUEST['adres']; else $adres 0;
echo 
"$adres";
if (isset(
$_REQUEST[primech])) $primech $_REQUEST['primech']; else $primech 0;
echo 
"$primech";
if (isset(
$_REQUEST[e_mail])) $e_mail $_REQUEST['e_mail']; else $e_mail 0;
echo 
"$e_mail";
mysql_query("SET NAMES cp1251");
function 
EditSelect($date_dog$n_dog$name_org$komissia$dop_sogl$inn$r_schet$boss$kontakt_l$kont_phone$adres$primech$e_mail)
    {
        
$vars = array($date_dog$n_dog$name_org$komissia$dop_sogl$inn$r_schet$boss$kontakt_l$kont_phone$adres$primech$e_mail);
$query "SELECT * FROM `dogovor`, `bank`, `periodichnost`, `sposob_oplati`, `sposob_peredachi`, `status`, `vid_billinga`, `vid_oplati` WHERE 
dogovor.bank_id=bank.id_bank and dogovor.periodichnost_id=periodichnost.id_periodichnost and dogovor.sposob_oplati_id=sposob_oplati.id_sposob_oplati and dogovor.sposob_peredachi_id=sposob_peredachi.id_sposob_peredachi and dogovor.status_id=status.id_status and dogovor.vid_billinga_id=vid_billinga.id_vid_billinga and dogovor.vid_oplati_id=vid_oplati.id_vid_oplati"
;
$queryArr = array(
" and dogovor.date_dog='$date_dog'",
" and dogovor.n_dog LIKE '%$n_dog%'",
" and dogovor.name_org LIKE '%$name_org%'",
" and dogovor.komissia = '$komissia'",
" and dogovor.dop_sogl LIKE '%$dop_sogl%'",
" and dogovor.inn = '$inn'",
" and dogovor.r_schet LIKE '%$r_schet%'",
" and dogovor.boss LIKE '%$boss%'",
" and dogovor.kontakt_l LIKE '%$kontakt_l%'",
" and dogovor.kont_phone LIKE '%$kont_phone%'",
" and dogovor.adres LIKE '%$adres%'",
" and dogovor.primech LIKE '%$primech%'",
" and dogovor.e_mail LIKE '%$e_mail%'",
);
//print_r($queryArr);

for($i=0$i<count($queryArr); $i++)
            if(
$vars[$i]!=0)
                
$query.=$queryArr[$i];

        return 
$query;
    }
     
$sSQL=EditSelect($date_dog$n_dog$name_org$komissia$dop_sogl$inn$r_schet$boss$kontakt_l$kont_phone$adres$primech$e_mail);
     echo 
"$sSQL";
$result=mysql_query($sSQL$link);
if (
mysql_num_rows($result) == 0) echo"Результат запроса : 0";else
if (
mysql_num_rows($result) > 0
while ( 
$myrow mysql_fetch_array($result) ):
?>

Здесь я попробовал проверить прям по строчно, т.е. каждую проверку, в результате заметил что он при таком коде из формы типа text
1) проверяет и принимает без проблем строку поиска, в каждом.
2) проверил массив, он работает ибо в каждом отражается строка которую вводили.
3) А вот дальше уже выводит вот что, при echo "$sSQL"; в случаи когда вводили текст выводит запрос в виде (не имеет значение в каком из форм вводил):
PHP код: Выделить весь код

SELECT FROM `dogovor`, `bank`, `periodichnost`, `sposob_oplati`, `sposob_peredachi`, `status`, `vid_billinga`, `vid_oplatiWHERE dogovor.bank_id=bank.id_bank and dogovor.periodichnost_id=periodichnost.id_periodichnost and dogovor.sposob_oplati_id=sposob_oplati.id_sposob_oplati and dogovor.sposob_peredachi_id=sposob_peredachi.id_sposob_peredachi and dogovor.status_id=status.id_status and dogovor.vid_billinga_id=vid_billinga.id_vid_billinga and dogovor.vid_oplati_id=vid_oplati.id_vid_oplati 


, но когда ищем по цифрам находит всё идеально! Т.е. он не дописывает условие и в результате он выводит всю таблицу!
Что не так?

Отправлено: 23:29, 24-06-2012 | #32


Старожил


Сообщения: 252
Благодарности: 3

Профиль | Отправить PM | Цитировать


На одном сайт нашел такую вещь:
settype($someVar, "string") // переопределяем тип данных на строковый
Вопрос правильно ли будет вписать подобное в проверку?

Отправлено: 09:26, 25-06-2012 | #33


Старожил


Сообщения: 252
Благодарности: 3

Профиль | Отправить PM | Цитировать


Вопрос решён спасибо!!

Отправлено: 10:45, 25-06-2012 | #34



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Поиск в таблице mysql через формы+php

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Поиск одинаковых значений в одной таблице MySQL blackmane Вебмастеру 1 01-04-2012 14:27
Поиск заданного текста в коде формы с периодическим её обновлением. BAORope AutoIt 0 30-03-2012 19:52
MSFT SQL Server - Поиск пустого поля в таблице rivera Программирование и базы данных 2 05-07-2011 11:04
Выборочная загрузка и выгрузка данных из формы в таблицу MySQL dima1981 Вебмастеру 8 25-08-2008 18:02
Поиск в MySQL LEXX2002 Вебмастеру 15 09-10-2004 01:04




 
Переход