Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: нахождение и вывод нужной информации
 
 автор: lexal   (21.06.2006 в 18:18)   письмо автору
 
 

есть два поля ввода и кнопка.
после нажатия на кнопку данные сохраняются в get.txt. и открывается страница:
на которой поле ввода и кнопка "найти". если в поле ввода на этой странице ввести значение которое мы записили в первое поле на первой странице, то после нажатия на кнопку высветилось значение первого поля и второго (того которое вводилось со значением первого поля).
У меня есть первая страница:

<form method=post> 
  <textarea name=text1 cols=20 rows=5></textarea><br> 
<textarea name=text2 cols=20 rows=5></textarea><br> 
  <input type=submit value="ОК"> 
</form> 

<?php 
if(@empty($_POST['text1']) OR @empty($_POST['text2'])){die("Empty input. Please reenter.");} 
$fd fopen("get.txt","a") OR die('Couldn\'t open'); 
fwrite($fd$_POST['text1']."\r\n".$_POST['text2']."\r\n") OR die('Couldn\'t write'); 
fclose($fd) OR die('Couldn\'t close'); 
echo 
"<SCRIPT>document.location='find.php';</SCRIPT>"
?> 

Подскажите пожалуйста, как сделать вторую?

   
 
 автор: valenok   (21.06.2006 в 18:23)   письмо автору
 
   для: lexal   (21.06.2006 в 18:18)
 

Кстати, Хеопс - почему ту тему закрыли?

   
 
 автор: cheops   (21.06.2006 в 18:47)   письмо автору
 
   для: valenok   (21.06.2006 в 18:23)
 

Слишком длинная.

   
 
 автор: valenok   (21.06.2006 в 18:51)   письмо автору
 
   для: cheops   (21.06.2006 в 18:47)
 

А чем это мешает?

   
 
 автор: cheops   (22.06.2006 в 00:23)   письмо автору
 
   для: valenok   (21.06.2006 в 18:51)
 

Не удобно читать тем у кого плохой канал, из-за того, что используется лестничная структура (читай - ркурсивный спуск) большая нагрузка на движок.

   
 
 автор: valenok   (22.06.2006 в 10:49)   письмо автору
 
   для: cheops   (22.06.2006 в 00:23)
 

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

   
 
 автор: Loki   (22.06.2006 в 11:48)   письмо автору
 
   для: valenok   (22.06.2006 в 10:49)
 

Так канал плохой на сервере, а не на клиенте:)
Клиенту фиолетово - рукурсивный там спуск или нет:)
А вот размер страницы - критичен. А для структурного форума разбиение по страницам толком не сделать.

   
 
 автор: valenok   (22.06.2006 в 12:46)   письмо автору
 
   для: Loki   (22.06.2006 в 11:48)
 

Ну это да...

   
 
 автор: Axxil   (21.06.2006 в 18:24)   письмо автору
 
   для: lexal   (21.06.2006 в 18:18)
 

Тяжело понять конечно.
Но из того что понял наверное надо значение второго поля сохранять либо в сессионной переменной либо в файле промежуточном. Короче буфер сделать. И когда мы получаем последнюю страницу где

после нажатия на кнопку высветилось значение первого поля и второго (того которое вводилось со значением первого поля).

то получать значение этого второго поля из буфера.

   
 
 автор: valenok   (21.06.2006 в 18:27)   письмо автору
 
   для: Axxil   (21.06.2006 в 18:24)
 


<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");}
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1];

   
 
 автор: valenok   (21.06.2006 в 18:28)   письмо автору
 
   для: Axxil   (21.06.2006 в 18:24)
 

А он сохраняет введённые значения в файл.

   
 
 автор: Axxil   (21.06.2006 в 18:33)   письмо автору
 
   для: valenok   (21.06.2006 в 18:28)
 

Щас да :)
До этого у него другой код был...
А с вашим кодом согласен. Так же бы сделал.

   
 
 автор: valenok   (21.06.2006 в 18:46)   письмо автору
 
   для: Axxil   (21.06.2006 в 18:33)
 

Это он в другой теме не совсем сохранял.

   
 
 автор: lexal   (21.06.2006 в 19:56)   письмо автору
 
   для: valenok   (21.06.2006 в 18:46)
 

значит мне надо первый переделать?

   
 
 автор: valenok   (21.06.2006 в 19:58)   письмо автору
 
   для: lexal   (21.06.2006 в 19:56)
 

Нет.

   
 
 автор: valenok   (21.06.2006 в 19:58)   письмо автору
 
   для: lexal   (21.06.2006 в 19:56)
 

Первый

<form method=post> 
  <textarea name=text1 cols=20 rows=5></textarea><br> 
<textarea name=text2 cols=20 rows=5></textarea><br> 
  <input type=submit value="ОК"> 
</form> 

<?php 
if(!isset($_POST['text1']) OR !isset($_POST['text2'])){die("Empty input. Please reenter.");} 
$fd fopen("get.txt","a") OR die('Couldn\'t open'); 
fwrite($fd$_POST['text1']."\r\n".$_POST['text2']."\r\n") OR die('Couldn\'t write'); 
fclose($fd) OR die('Couldn\'t close'); 
echo 
"<SCRIPT>document.location='find.php';</SCRIPT>"
?>

   
 
 автор: valenok   (21.06.2006 в 19:59)   письмо автору
 
   для: lexal   (21.06.2006 в 19:56)
 

Второй

<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");} 
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1];

   
 
 автор: lexal   (21.06.2006 в 20:20)   письмо автору
 
   для: valenok   (21.06.2006 в 19:59)
 

второй не работает

   
 
 автор: valenok   (21.06.2006 в 20:33)   письмо автору
 
   для: lexal   (21.06.2006 в 20:20)
 


<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
for(
$i=0;$i<count($f);$i++){ echo "\"".$f[$i]."\"<br>\n";}



Результат выполнения

   
 
 автор: lexal   (21.06.2006 в 20:40)   письмо автору
 
   для: valenok   (21.06.2006 в 20:33)
 

хммм, что то я не понял какой из них нужный

   
 
 автор: valenok   (21.06.2006 в 20:48)   письмо автору
 
   для: lexal   (21.06.2006 в 20:40)
 

Это и что вышло:

<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
for(
$i=0;$i<count($f);$i++){ echo "\"".$f[$i]."\"<br>\n";}


Это отладочный.
Для того чтоб отладить работу вот этого:


<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");} 
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1];


Какой результат выполнения первого скриптв в этом сообщении

   
 
 автор: lexal   (21.06.2006 в 20:53)   письмо автору
 
   для: valenok   (21.06.2006 в 20:48)
 

а куда этот отладочный девать?

   
 
 автор: valenok   (21.06.2006 в 21:13)   письмо автору
 
   для: lexal   (21.06.2006 в 20:53)
 

Загрузить вместо того и сказать что он выдал.

   
 
 автор: lexal   (21.06.2006 в 21:42)   письмо автору
 
   для: valenok   (21.06.2006 в 21:13)
 


<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
for(
$i=0;$i<count($f);$i++){ echo "\"".$f[$i]."\"<br>\n";} 


выдаёт всё что есть в файле

   
 
 автор: valenok   (21.06.2006 в 21:48)   письмо автору
 
   для: lexal   (21.06.2006 в 21:42)
 

Ну где?
Ctrl c сюда.
Как есть.

   
 
 автор: lexal   (21.06.2006 в 21:56)   письмо автору
 
   для: valenok   (21.06.2006 в 21:48)
 

"123 "
"фыв "
"456 "
"вук "
" "
" "
"890 "
"пппппвпак "
"555 "
"еногенг "
" "
" "
"454 "
"ерер "

   
 
 автор: valenok   (21.06.2006 в 22:11)   письмо автору
 
   для: lexal   (21.06.2006 в 21:56)
 

Видишь оно везде порбелы добавляет?
Именно это нам и мешало:

Есть два решения порблемы. Либо добавиьт этот пробел к запросу поиска, либо вырезать пробелы у элементов массива.
Первый куда более быстрый и простой.
Если нет принципиального значения - лучше добавить пробел.

Второй (добавление пробела к запросу поиска)

<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']." "
$f=file('get.txt'); 
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");} 
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1];



Второй (С вырезанием пробелом из элементов массива)

<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']; 
$f=file('get.txt'); 
for(
$i=0;$i<count($f);$i++){$f[$i]=rtrim($f[$i]);}
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");} 
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1];



Как я уже сказал, первый вариант в этом сообщении предпочтительней

   
 
 автор: lexal   (21.06.2006 в 23:19)   письмо автору
 
   для: valenok   (21.06.2006 в 22:11)
 

первый вариант не работает

   
 
 автор: valenok   (21.06.2006 в 23:24)   письмо автору
 
   для: lexal   (21.06.2006 в 23:19)
 

Я немного спутал названия.
Не работает там где добавляем пробел или где стираем пробелы?

   
 
 автор: lexal   (21.06.2006 в 23:33)   письмо автору
 
   для: valenok   (21.06.2006 в 23:24)
 

там где добавляем :

<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']." "
$f=file('get.txt'); 
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");} 
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1]; 

   
 
 автор: valenok   (21.06.2006 в 23:41)   письмо автору
 
   для: lexal   (21.06.2006 в 23:33)
 

Замени на это и скажи что вышло:

<form method=post> 
<input name='search'> 
<input type=submit value="Search"> 
</form> 

<? 
if(!isset($_POST['search'])){die;} 
$s=$_POST['search']." "; echo "\"".$s."\"";
if(
in_array($s,$f)){echo '1';}
$s.=" "; echo "\'".$s."\'";
if(
in_array($s,$f)){echo '2';}
$f=file('get.txt'); 
$key array_search($s$f); 
if(!
$key){die("Wasn't found.");} 
echo 
"1.".$f[$key]."<br>\n2.".$f[$key+1];

   
 
 автор: lexal   (21.06.2006 в 23:40)   письмо автору
 
   для: valenok   (21.06.2006 в 23:24)
 

второй вроде работает

   
 
 автор: lexal   (21.06.2006 в 23:41)   письмо автору
 
   для: valenok   (21.06.2006 в 23:24)
 

спасибо огромное!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования