Старожил
Сообщения: 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_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
, но когда ищем по цифрам находит всё идеально! Т.е. он не дописывает условие и в результате он выводит всю таблицу!
Что не так?
|