Автор Тема: Ни как не пойму это мой баг или....?  (Прочитано 3222 раз)

0 Пользователей и 1 Гость просматривают эту тему.

MishaZ

  • Гость
Ни как не пойму это мой баг или....?
« : 27 Августа 2002, 05:44:24 »
Или баг Зенда =)

Доброе время суток всем знатокам ПХП, да и просто ВСЕМ.
Дело вот в чём, у меня есть массив Фамилий некоторой базы, по которой я хочу организовать приметивненький поиск, его примерный код внизу (переменная $name- введённая для поиска фамилия), так вот проблема в том что этот скрипт не ищет фамилии с первой буквы...поясняю , если я ввожу "Иванов"  то он ни чего не выдваёт , а если "ванов", то выдаёт и всех "Ивановых" и всех "Ливановых" , вообщем все фамилии в которых встречается это буквосочетание.
Помогите плз......
============Примерный код=============
for ($i=0;$iif (strpos($fio[$i],$name)!=false){
echo  "Эта фамилия !!!".$base->fio[$i]."
";
}

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Ни как не пойму это мой баг или....?
« Ответ #1 : 27 Августа 2002, 06:21:19 »
попробуй
if (strpos($fio[$i],$name) === true){
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ни как не пойму это мой баг или....?
« Ответ #2 : 27 Августа 2002, 21:11:38 »
Какое true???
!== используй...

for ($i=0;$i<sizeof($fio);$i++){
if (
strpos($fio[$i],$name)!==false){
echo 
"Эта фамилия !!!".$base->fio[$i]."
"
;
}

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
Ни как не пойму это мой баг или....?
« Ответ #3 : 28 Августа 2002, 07:28:23 »
Совершенно верно Макс говорит. Это "багофича" ПХП, если искомая подстрока найдена в самом начале strpos возвращает значение 0 (позицию начала подстроки в строке) а не false, а if с оператором "!=" думает, что 0 это то же что и false. Необходимо проверять точное соответствие "типа" оператором "===" (ну или "!==").
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ни как не пойму это мой баг или....?
« Ответ #4 : 28 Августа 2002, 16:37:05 »
Это не багофича. Это совершенно логичное и правильное дело.

MishaZ

  • Гость
Ни как не пойму это мой баг или....?
« Ответ #5 : 28 Августа 2002, 22:18:23 »
Вах..спасибо всем огромное...=)

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ни как не пойму это мой баг или....?
« Ответ #6 : 20 Марта 2003, 17:13:39 »
Доктор

А может лучше писать

for ($i=0;$i

if (strpos($fio[$i],$name)>-1){


echo "Эта фамилия !!!".$base->fio[$i]."
";
}

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Ни как не пойму это мой баг или....?
« Ответ #7 : 20 Марта 2003, 18:30:36 »
Нет, не лучше.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
Ни как не пойму это мой баг или....?
« Ответ #8 : 21 Марта 2003, 08:30:53 »
в таком случае проще юзать stristr (strstr)
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28