|
|
|
| Суть проблемы: как я поняла, не передаются данные из первой страницы (из полей ввода) в вторую для обработки. То есть search_word1, search_word2..... search_word10 и не сработывают checkbox: в любом случает отправляется значение value.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Поиск: люди.</title>
</head>
<body>
<form name="search" action="ResultSearchPeople.php" method="GET">
<table>
<tr>
<td>
Найти:
<input type="submit" value="Найти">
</td>
</tr>
<tr>
<td>
<br />
Выберети параметры поиска:
</td>
</tr>
<td valign="TOP"><input type="text" name="search_word2" style="width:130px;"/>Фамилия<br />
<input type="text" name="search_word1" style="width:130px;"/>Имя<br />
<input type="text" name="search_word3" style="width:130px;"/>Отчество<br /></td>
</tr>
<tr>
<td valign="TOP">Координаты:<br />
<input type="text" name="search_word4" style="width:130px;"/>Адрес<br />
<input type="text" name="search_word5" style="width:130px;"/>E-mail<br />
<input type="text" name="search_word6" style="width:130px;"/>Телефоны<br /></td>
</tr>
<tr>
<td valign="TOP">
Тип работы:<br />
<input type="checkbox" name="seach_type_work[]" value="1"/>Озвучивание<br />
<input type="checkbox" name="seach_type_work[]" value="2"/>Роль<br /></td>
<tr/>
<tr>
<td valign="TOP"><input type="text" name="search_word[9]" style="width:130px;"/>Дата рожденья<br />
<input type="text" name="search_word10" style="width:130px;"/>Город<br />
<input type="text" name="search_word7" style="width:130px;"/>Дополнительно<br />
<input type="text" name="search_word8" style="width:130px;"/>Дата регистрация<br /></td>
</tr>
</table>
</form>
</body>
</html>
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[url="http://www.w3.org/TR/html4/loose.dtd"]http://www.w3.org/TR/html4/loose.dtd[/url]">
<html>
<head>
<title>Результат</title>
</head>
<body>
<?php
error_reporting(E_ALL);
$usertable = "people";
require("./config.php");
$search_word = array(1=>$search_word1, 2=>$search_word2, 3=>$search_word3, 4=>$search_word4, 5=>$search_word5, 6=>$search_word6, 7=>$search_word7, 8=>$search_word8, 9=>$search_word9, 10=>$search_word10);
$search_field = array(1=>'NAME', 2=>'SURNAME', 3=>'PATRONYMIC', 4=>'ADDRESS', 5=>'E_MAIL', 6=>'TELEPHONE1', 7=>'OTHER', 8=>'DATE', 9=>'BIRTHDAY', 10=>'CITY');
$i=11;
while(--$i >=1)
{
if(strlen($search_word[$i]) == 0)
{
$search = $search_word[$i];
echo ("$search");
$field="and $search_field[$i] like %{$search}% $field";
}
echo ("$i $field <br />");
}
$search_field_type = array(1=>'INSONATION', 2=>'ACTOR');
$j=-1;
while(++$j <=1)
{
if($seach_type_work[$j]=1) $field="and $search_field_type[1] like on $field";
if($seach_type_work[$j]=2) $field="and $search_field_type[2] like on $field";
}
echo ("1 $field <br />");
$field = substr_replace($field, " ", 0, 3); //убираем end из начала строки
echo ("2 $field <br />");
//запрос к таблице, определенной в переменной usertable
$query = "select * from $usertable where $field";
$ath = mysql_query($query);
//проверка успешности выполнения запроса
if(!$ath) exit(mysql_error());
//выводим результат
echo '<table border="1">';
echo "<tr>
<td>Имя</td>
<td>Фамилия</td>
<td>Отчество</td>
<td>Адрес</td>
<td>E-mail</td>
<td>Телефон</td>
<td>Дополнительно</td>
<td>Дата регистрации</td>
<td>Родился</td>
<td>Озвучивание</td>
<td>Роль</td>
<td>Город</td>
</tr>";
while($result = mysql_fetch_array($ath))
{
echo "<tr>
<td>".$result['NAME']."</td>
<td>".$result['SURNAME']."</td>
<td>".$result['PATRONYMIC']."</td>
<td>".$result['ADDRESS']."</td>
<td>".$result['E_MAIL']."</td>
<td>".$result['TELEPHONE1']."<br />".$result['TELEPHONE2']."</td>
<td>".$result['OTHER']."</td>
<td>".$result['DATE']."</td>
<td>".$result['BIRTHDAY']."</td>
<td>".$result['INSONATION']."</td>
<td>".$result['ACTOR']."</td>
<td>".$result['CITY']."</td>
</tr>";
}
echo "</table>";
mysql_close();
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: lucero
(20.05.2006 в 16:04)
| | Мне кажеться что проблемма у вас в register_globals
вот почитайте тут: http://phpfaq.ru/globals | |
|
|
|
|
|
|
|
для: lucero
(20.05.2006 в 16:04)
| | Если Вы указали метод Get в первом файле, то во втором файkе получать переменные нужно вот так, к примеру $_GET['search_word1'];
а не $search_word1. | |
|
|
|
|
автор: генг (20.05.2006 в 17:53) |
|
|
для: Mefisto84
(20.05.2006 в 17:46)
| | Я конечно не понял наверно что вы делаете, но хостинг nm.ru что уже поддерживает php? | |
|
|
|
|
|
|
|
для: генг
(20.05.2006 в 17:53)
| | На NM.ru я просто выложила, чтобы можно было посмотреть, как всё выглядит (на всякий случай). | |
|
|
|
|
|
|
|
для: Mefisto84
(20.05.2006 в 17:46)
| | Я всё перевела на метод передачи данных POST.
У меня ошибка не с передаче, а в обработке массива с переданными данными циклом: при этом цикл while срабатывает, а if - нет (мы в него даже и не заходим).
error_reporting(E_ALL);
$usertable = "people";
require("./config.php");
$search_word = array(1=>$_POST['search_word1'], 2=>$_POST['search_word2'], 3=>$_POST['search_word3'], 4=>$_POST['search_word4'], 5=>$_POST['search_word5'], 6=>$_POST['search_word6'], 7=>$_POST['search_word7'], 8=>$_POST['search_word8'], 9=>$_POST['search_word9'], 10=>$_POST['search_word10']);
$search_field = array(1=>'NAME', 2=>'SURNAME', 3=>'PATRONYMIC', 4=>'ADDRESS', 5=>'E_MAIL', 6=>'TELEPHONE1', 7=>'OTHER', 8=>'DATE', 9=>'BIRTHDAY', 10=>'CITY');
$i=11;
while(--$i >=1)
{
if(strlen($search_word[$i]) == 0)
{
$search = $search_word[$i];
$field="and $search_field[$i] like %$search% $field";
}
}
|
| |
|
|
|
|
|
|
|
для: Lucero
(20.05.2006 в 19:41)
| |
$field="and $search_field[$i] like %$search% $field";
|
вот здесь вроде должно быть
$field="and $search_field[$i] like '%".$search."%' $field";
|
| |
|
|
|
|
|
|
|
для: Mefisto84
(20.05.2006 в 21:05)
| | вечно мучаюсь с этими кавычками ((( | |
|
|
|
|
|
|
|
для: Lucero
(20.05.2006 в 19:41)
| | По-моему, Вы ошиблись в условии.
if(strlen($search_word[$i]) != 0)
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.05.2006 в 23:39)
| | ага, спасибо большое =)))
всё работает. | |
|
|
|