Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP поиск по CSV файлу. Нужно произвести поиск по CSV 
:(
    Опции темы
WebCob
Дата 5.8.2004, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



Вот что выводит
lrmos117790000,lrmos117799999
Если для проверки воткнуть принт

(rplc($nums[1])<$number&&rplc($nums[2])>$number)?printf("c %s по %s продается в салоне %s",$nums[3],$nums[4],$nums[5]):"";
}
print "$nums[1],$nums[2]";// проверка

}

Либо, без него не выводит ни чего...
PM MAIL   Вверх
Ignat
Дата 5.8.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Странно, у меня работает...
А вот так у тебя будет работать?
Код
<?php
function rplc($text){
return str_replace("lrmos","",$text);
}

/*Okno dlya vvoda*/
print "<FORM NAME='card' METHOD=get><center><h1><br>";
print "<h2><font color=black>Ââåäèòå ñ÷åò íà÷èíàþùèéñÿ c lrmos.<br>";
print "<INPUT TYPE=text NAME=int_no SIZE=15>";
print "<INPUT TYPE=SUBMIT NAME=button VALUE=Enter><br>";
/*Finish Okno dlya vvoda*/

if (!empty($_GET)){

$number=rplc($_GET['int_no']);
$lines=file("test1.csv","r");
for($i=0;$i<count($lines);$i++){
$nums=explode(";",$lines[$i]);

(rplc($nums[1])<$number&&rplc($nums[2])>$number)?printf("c %s ïî %s ïðîäàåòñÿ â ñàëîíå %s",$nums[3],$nums[4],$nums[5]):"";
}

}
?>



--------------------
Теперь при чем :P
PM   Вверх
WebCob
Дата 5.8.2004, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



Ни хочет работать... Перебрал несколько вариантов. Все в пустую.
Думал может под Виндой такой глюк но и на линухе под аппаче тоже самое...

PM MAIL   Вверх
Ignat
Дата 5.8.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Какая версия пхп? Попробуй $_GET заменить на $HTTP_GET_VARS;

Добавлено @ 17:44
Какую-нибудь ошибку дает?
Добавлено @ 17:47
После этой строчки
$nums=explode(";",$lines[$i]);
попробуй поставить
print_r($nums);



--------------------
Теперь при чем :P
PM   Вверх
WebCob
Дата 5.8.2004, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



$_GET исправил на $HTTP_GET_VARS.
У меня вообщето используется вот эта логика:
//HTTP_GET_VARS
//**************
while (list($key, $val) = @each($HTTP_GET_VARS)) {
$GLOBALS[$key] = $val;
}
//**************
//HTTP_POST_VARS
//**************
while (list($key, $val) = @each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
}
//**************
//HTTP_POST_FILES
//**************
while (list($key, $val) = @each($HTTP_POST_FILES)) {
$GLOBALS[$key] = $val;
}
//**************
//$HTTP_SESSION_VARS
//**************
while (list($key, $val) = @each($HTTP_SESSION_VARS)) {
$GLOBALS[$key] = $val;
}
//**************
//$_SERVER
//**************
while (list($key, $val) = @each($_SERVER)) {
$GLOBALS[$key] = $val;
}
#===End- global======#

Это спасает от PHP и Windows глюков.
Но в данном случае я ее сейчас не пользую. Хотя пробовал и с ней, но убрал.

Ошибок ни каких не выдает. Переписал немного, справил синтаксические ошибки, заработала. Теперь она печатает весь csv файл, не разбирая его.
(rplc($nums[1])<$number&&rplc($nums[2])>$number);
print "(c $s ïî $s ïðîäàåòñÿ â ñàëîíå $s,,$nums[3],$nums[4],$nums[5])";

Поставил print_r($nums); и Теперь вот что выдает:
ОбычныйТерминСписокопределенийАдресЦитатыФорматированныйArray ( [0] => index_no [1] => begin_count [2] => end_count [3] => start_action [4] => end_action [5] => info_action ) (c по продается в салоне ,,start_action,end_action,info_action )Array ( [0] => 1 [1] => lrmos117720000 [2] => lrmos117729999 [3] => 01.05.2000 [4] => 04.08.2004 [5] => Продается в салоне А ) (c по продается в салоне ,,01.05.2000,04.08.2004,Продается в салоне А )Array ( [0] => 2 [1] => lrmos117730000 [2] => lrmos117739999 [3] => 09.07.2001 [4] => 05.08.2004 [5] => Продается в салоне В ) и т.д. до споледней строки.

А PHP Version 4.3.7
PM MAIL   Вверх
Ignat
Дата 6.8.2004, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Цитата
Это спасает от PHP и Windows глюков.

Ничего подобного - это выводит в глобальное окружение массивы, а это нехорошо, тем более это можно сделать проще.
Цитата
печатает весь csv файл, не разбирая его.
(rplc($nums[1])<$number&&rplc($nums[2])>$number);
print "(c $s ïî $s ïðîäàåòñÿ â ñàëîíå $s,,$nums[3],$nums[4],$nums[5])";

И не будет разбирать - у тебя нет проверки условия.
Синтаксическая ошибка в первом примере была только одна - я про....л точку с запятой.
вот это
Код
(rplc($nums[1])<$number&&rplc($nums[2])>$number)?printf("c %s по %s продается в салоне %s",$nums[3],$nums[4],$nums[5]):"";

замени на
if(rplc($nums[1])<$number&&rplc($nums[2])>$number){
printf("c %s по %s продается в салоне %s",$nums[3],$nums[4],$nums[5]):"";
}
Ты листинг исполняешь в том виде, в котором я привожу или куда-то вставляешь?


--------------------
Теперь при чем :P
PM   Вверх
WebCob
Дата 6.8.2004, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



На счет листинга, пока я отрабатываю форму, я исполняю только в том виде в котором Ты приводишь. Думаю это правильно.
Даже с учетом того, что
if(rplc($nums[1])<$number&&rplc($nums[2])>$number){
printf("c %s по %s продается в салоне %s",$nums[3],$nums[4],$nums[5]):"";
}
Не происходит индескирование строк, каждая строка начинается с единицы.


PM MAIL   Вверх
WebCob
Дата 6.8.2004, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



Ignat не совсем понятно почему $number=rplc($_GET['int_no']); а не $number=rplc($_GET[$int_no]);
Мог бы пояснить?
PM MAIL   Вверх
Ignat
Дата 6.8.2004, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Блин, я уже ничего не понимаю. Вот код, скопируй его в отдельный файл и выполни, так как он есть:
Код
<?php
function rplc($text){
return str_replace("lrmos","",$text);
}

/*Okno dlya vvoda*/
?>
<FORM NAME='card' METHOD=get action=<?=$_SERVER['PHP_SELF']?>><center><h1><br>
<h2><font color=black>Введите счет начинающийся c lrmos.<br>
<INPUT TYPE=text NAME=int_no SIZE=15>
<INPUT TYPE=SUBMIT NAME=button VALUE=Enter><br>
<?
/*Finish Okno dlya vvoda*/

if (!empty($_GET['int_no'])){

$number=rplc($_GET['int_no']);
$lines=file("test1.csv","r");
for($i=0;$i<count($lines);$i++){
$nums=explode(";",$lines[$i]);

(rplc($nums[1])<=$number&&rplc($nums[2])>=$number)?printf("c %s по %s продается в салоне %s",$nums[3],$nums[4],$nums[5]):"";
}

}
?>



--------------------
Теперь при чем :P
PM   Вверх
WebCob
Дата 6.8.2004, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



Супер! Вот сейчас цепочка полная.
Благодаря не большому изменению в программе, а именно здесь:
if (!empty($_GET['int_no'])) Программа заработала!!!
Ignat - Огромное спасибо!!!
Я только изучаю PHP, но чем дальше, тем интереснее.
Можно Тебе еще один вопрос?
Вопрос касается добавление в этот же файл тех же полей в конец списка через web форму, грубо говоря, есть пользовательская часть, которая считывает информацию из CSV (То, что Ты помог мне), а есть административная, которая добавляет и изменяет содержимое строк(не полей!)? Или для этого Вопроса/Ответа нужно новый топик начинать?
PM MAIL   Вверх
Ignat
Дата 6.8.2004, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Да, новый топик, но скорее всего тебе будет не нужен. Поищи по форуму "файл", "fwrite" найдешь море информации об файловых БД.


--------------------
Теперь при чем :P
PM   Вверх
WebCob
Дата 6.8.2004, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



Ignat, спасибо за терпение и очень грамотную помощь!
Скажи, я ни как не могу найти, как репутацию повышать, тому кто тебе помогает?
Очень хочется помимо спасибо еще поднять и Твой уровень репутации.
PM MAIL   Вверх
Ignat
Дата 6.8.2004, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



smile.gif Спасибо, но репутацию сможешь повышать, после 100 постов.
А на помощь здесь всегда можно рассчитывать...
Удачи в изучении.
Добавлено @ 13:45
Цитата(WebCob @ 6.8.2004, 11:38)
Ignat не совсем понятно почему $number=rplc($_GET['int_no']); а не $number=rplc($_GET[$int_no]);
Мог бы пояснить?

Упс, не заметил этот пост.
$_GET - ассоциативный массив (хеш), в котором именнованные поля, которые носят имя передаваемого параметра ('int_no'), а не его значения ($int_no).
Отсюда: $_GET['int_no']



--------------------
Теперь при чем :P
PM   Вверх
WebCob
Дата 6.8.2004, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2004

Репутация: нет
Всего: нет



Все понял! Спасибо еще раз.
Удачи!
На счет форума, я уже понял, здесь точно помогут! Это приятно.
Спасибо!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.