Одинаковые переменные не равны
1.
Андрей (20.03.2011 / 21:55)
Первый раз такое более чем за 3 года кодинга.
<?php
function chat_otvet(){
global $room, $user,$text;
$otvet=mysql_fetch_array(mysql_query("SELECT otvet,time FROM chat_vopros LIMIT 1"));
echo $otvet['otvet'].$text;
if($otvet['otvet']==mb_strtolower($text)){
mysql_query("INSERT INTO chat_posts (text,ot,time,from_id,room) values ('Поздравляю <b>".$user['login']."</b>! Правельный ответ <b>".$otvet['otvet']."</b>!','Умница','".date('U')."',0,'$room[id]')");
echo 1;
}
}
?>
У $otvet['otvet'] и $text равне значение, но php с этим почемуто не согласен, я копирую ответ из бд, и при добовлении поста выводится одинаковое значение $otvet['otvet'] и $text, но условие не выполняется. О_О
Добавлено через 03:09 сек.
Пробовал убирать mb_strtolower() и сравнивать по типам (===), результат тотже...
2.
Дмитрий (20.03.2011 / 22:08)
А если предположить что в одной их двух строк содержатся пробелы или байт-коды т.е. не читаемые символы, такие как sub, and их не "видно", но в БД они могут сохранится из-за кодировки ...
3.
Андрей (20.03.2011 / 22:21)
Мда.. Изначально бд с вопросами бала в файле с кодировкой win-1021 (както так), перекодировал в utf8, скриптом перемистил это всё в mysql, там тоже хранится в utf8.
Добавил регулярку : $otvet['otvet'] = preg_replace ("/[^a-zA-ZА-Яа-я0-9\s]/","",$otvet['otvet']);
и некоторые символы стали вопросами...
Как это можно подправить в бд?
Добавлено через 01:18 сек.
В ручную не вариант, там более 25 тысяч вопросов.
4.
Дмитрий (20.03.2011 / 23:04)
посмотри кодировку таблицы и файла php, в котором сравниваются данные с формы и ответами из БД
можешь поробывать изменять кодировку БД "кверами" SET NAMES утф-8
ну или лучше сделай всё на локалке или другом хосте заново т.е. залить вопросы или что там делал
URL:
https://visavi.net/topics/19938