powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) Сравнение не работает..
13 сообщений из 13, страница 1 из 1
(PERL) Сравнение не работает..
    #33352457
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
В скрипте есть такой код:

while (@dataRow = $SQL->fetchrow_array)
{
if ($dataRow[5] ne '01/01/2222')
{
print "</TD><TD width=130>",$dataRow[5];
}
else
{
print "</TD><TD width=130>не определена";
}

Так вот при выполнении на винде, "не определена" выводилось, а на FreeBSD выводится "01/01/2222", что не есть гут.
Когда делаю if ($dataRow[5] != '01/01/2222'), то "не определена" выводится во всех строках, даже если в $dataRow[5] содержится '02/07/2005'.

Помогите пожалуйста решить вопрос..
--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33352960
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
ПАМАГИТЕ!!!
--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33352997
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего кричать то.... из первого поста нихрена не понятно что надо то

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353029
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
Проискодит проверка переменной $dataRow[5].

Если там "01/01/2222", то должно выводиться "не определена",
иначе должно выводиться то что там есть.

Когда сравнение таким образом идет:
Код: plaintext
if ($dataRow[ 5 ] ne '01/01/2222')
то строка "не определена" не выводится, а выводится "01/01/2222".

А когда
Код: plaintext
if ($dataRow[ 5 ] != '01/01/2222')
то строка "не определена" выводится для всех случаев, даже где $dataRow[5] не равна "01/01/2222"

Вот..


--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353268
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может я конечно сильно не прав, НО, ты уверен, что твой драйвер БД отдает ту самую дату одинаково и для вин и для бсди машины ???
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353330
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, то данный вопрос относится к Perl. Если это так, то навскидку (давно это было, могу и ошибаться) операции сравнения
Код: plaintext
1.
 ne 
и
Код: plaintext
 != 
- не есть одно и тоже (см. типы данных).
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353450
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
'!=' - не равно
'ne' - строковое не равно

Но не работает ни так ни так.
Драйвер - FreeDTS, вроде все данные отдает нормально.
Для проверки выводил просто содержимое таблицы. Все нормально.

--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353525
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
my $dataRow = '01/01/2222';

if ($dataRow ne '01/01/2222') {
   print "$dataRow\n";
} else {
   print "не определена\n";
}

а так чего пишет ?
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353565
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
Так пишет "не определена"... :-(
--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353597
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DexТак пишет "не определена"... :-(

ну, все правильно... смотри чего у тебя БД отдает...
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353633
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
А как посмотреть?

Я пробовал смотреть вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
$SQL = $dbh->prepare("SELECT login, edittime, subject, condition, id, convert(char,plantime,103) as plandate, convert(char,exectime,103) as execdate FROM tasks ORDER BY edittime DESC");
$SQL->execute();
while (@dataRow = $SQL-fetchrow_array())
{
   print $dataRow[ 5 ],"<br>";
}

Вот что выдает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 01 / 08 / 2007  
 01 / 12 / 2010  
 01 / 01 / 2222  
 01 / 01 / 2222  
 01 / 01 / 2222  
 01 / 01 / 2222  
 01 / 10 / 2009  
 01 / 11 / 2006  
 01 / 01 / 2222  

Т.е. 1,2,7,8 строки должны выводиться нормально, остальные - "не определена".


--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353675
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
...
print "'",$dataRow[5],"'<br>";
print length($dataRow[ 5 ]),"<br>";

ну и пр... на предмет детектирования всяких пробелов...
...
Рейтинг: 0 / 0
(PERL) Сравнение не работает..
    #33353719
Dex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dex
Гость
Опа! Во где собака порылась :)

Длина строки оказалась 30
Сделал
Код: plaintext
convert(varchar,plantime, 103 )
и все заработало!

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


--------------------------------------------------
Shit happens.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PERL) Сравнение не работает..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]