Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сравнить введённую строку со строкой в бд

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: сравнить введённую строку со строкой в бд
broshurkaplus
Отправлено: 09 Сентября, 2011 - 11:39:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




здравствуйте
задался вопросом чтобы на сайте было поменьше одинаковых данных
хочу при загрузке сравнить введённую пользователем строку со строкой в бд и если повтор то отказать в добавлении

есть поль--й ввод например

явышел на улицу
небо светлое

$_POST['vvod']
мы это передаём постом и вносим в бд
CODE (htmlphp):
скопировать код в буфер обмена
  1.             $_POST['vvod']= trim($_POST['vvod']) ;
  2.             $_POST['vvod']= htmlspecialchars($_POST['vvod']) ;        
  3.             $_POST['vvod']= nl2br($_POST['vvod']);
  4.             $_POST['vvod']= mysql_real_escape_string($_POST['vvod']);

далее вставка в бд...


в базе после этого имеем

явышел на улицу <br />
небо светлое

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

CODE (htmlphp):
скопировать код в буфер обмена
  1.               $q_proverka=mysql_query("SELECT vvod FROM vvod WHERE vvod='".$_POST['vvod']."'");
  2.               $r_proverka=mysql_fetch_row($q_proverka);
  3.               if($r_proverka[0]==trim($_POST['vvod'])){ здесть бла бла  $_POST['vvod'] - такое уже есть }


не срабатывает
т.е. для строки ввода в одну строчку работает, а если предложение на 2 строки то не хочет находить совпадения!
я уже перед проверкой делал htmlspecialchars и т.д. а потом сравнивал - не срабатывает.

ПОДСКАЖИТЕ может чо не так?
 
 Top
LIME
Отправлено: 09 Сентября, 2011 - 11:49:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну вообщето проще так проверять http://php.net/manual/ru/functio...sql-num-rows.php
а почему не хочет работать незнаю...ведь строка 1 в принципе после обработки...интересно
(Добавление)
а вы перед сравнением также обрабатываете POST ?
 
 Top
broshurkaplus
Отправлено: 09 Сентября, 2011 - 12:56:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




ну да
я сначала обрабатываю затем сравниваю а затем вставляю

он вставляет как надо, я смотрю по акту в базе одинаково, а при сравнении не реагирует
 
 Top
MrBeard
Отправлено: 09 Сентября, 2011 - 14:05:46
Post Id



Гость


Покинул форум
Сообщений всего: 97
Дата рег-ции: Авг. 2011  


Помог: 2 раз(а)




broshurkaplus пишет:
ну да
я сначала обрабатываю затем сравниваю а затем вставляю

он вставляет как надо, я смотрю по акту в базе одинаково, а при сравнении не реагирует


ну, стоило бы посмотреть на строку, которая добавляется в БД, и возвращаемый результат из БД при поиске её же
зависит, по идее, от конфига таблицы и полей. может, ищет по первым символам, находит несколько строк, и первая из них не полностью совпадает с искомой
 
 Top
broshurkaplus
Отправлено: 09 Сентября, 2011 - 15:08:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




MrBeard
я ж код привёл...

ну типа так
вводим

я вышел на улицу
небо светлое

после обработки и вставки в бд имеем

явышел на улицу <br />
небо светлое

опять вводим

я вышел на улицу
небо светлое

обрабатываем пост и имеем

явышел на улицу <br />
небо светлое

теперь проверяем
CODE (htmlphp):
скопировать код в буфер обмена
  1. $q_proverka=mysql_query("SELECT vvod FROM vvod WHERE vvod='".$_POST['vvod']."'");
  2. $r_proverka=mysql_fetch_row($q_proverka);
  3. if($r_proverka[0]==trim($_POST['vvod'])){ здесть бла бла  $_POST['vvod'] - такое уже есть }

те при первом совпадении должно выдать, что это уже есть

а оно ан нет не срабатывает и всё равно добавляет в бд , в чём убеждаемся открыв таблицу в пхпАдмин - текст одинаковый!

а если вводим в одну строчку типа

я вышел на улицу небо светлое

то при повторном наборе и посте срабатывает и выдаёт что есть
в чём может быть дело?
может символы перевода или как подругому можно сравнить
(Добавление)
все исправил

сделал так

$q_proverka=mysql_query("SELECT vvod FROM vvod WHERE vvod='".$_POST['vvod']."'");
$r_proverka=mysql_fetch_row($q_proverka);
if($r_proverka[0]){ здесть бла бла $_POST['vvod'] - такое уже есть }

т.е. если есть в масиве строки элем $r_proverka[0] то - такое уже есть

всем спасибо
 
 Top
dimka3210
Отправлено: 11 Сентября, 2011 - 10:50:49
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




а md5 или SHA у них разные? попробуйте сравнить после шифрования.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB