Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2014, 19:41   #1
pr1me222
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 19
По умолчанию Странно работает цикл while

есть цикл для ajax.
раньше он выдавал нормальный результат в зависимости от введенного логина.
может я несу бред, но он резко перестал работать.
И теперь постоянно выдает yesyes, либо все таки срабатывает, но через раза два, не давая зарегистрироваться только по одному логину из трех имеющихся в бд.
уже использовался и цикл foreach, и другие способы, не прибегая к использованию циклов. все одно и то же(

Код:
<?php 
include("bd.php");
 
if(isset($_GET['login']))  
{   $login = $_GET['login'];} 
 
$login=strip_tags($login);
$login=trim($login);
 
$result2 = mysql_query("SELECT login FROM users",$db);
$myrow2 = mysql_fetch_array($result2);
 
foreach( $myrow2 as $key => $value){
    if($myrow2['login'] == $login)
    {
        echo "no";
    }
    else
    {
        echo "yes";
    }
}
 
?>
где я накосячила?
скажите пожалуйстааа
p.s: до ошибки в php.ini меняла значение директивы output_buffering на On, т.к. не работали сессии.
pr1me222 вне форума Ответить с цитированием
Старый 26.04.2014, 19:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А может лучше так:
Код:
<?php 
include("bd.php");
 
if(isset($_GET['login']))  
{   $login = $_GET['login'];} 
 
$login=strip_tags($login);
$login=trim($login);
 
$result2 = mysql_query("SELECT count(login) FROM users where login=".$login,$db);
$myrow2 = mysql_fetch_array($result2);
echo ($myrow2[0]==1)?"yes":"no";
}
 
?>
?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2014, 20:01   #3
pr1me222
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 19
По умолчанию

Я таким способом тоже пыталась, увы.
Ради интереса скопировала Ваш код - ничего не выводит
pr1me222 вне форума Ответить с цитированием
Старый 26.04.2014, 20:43   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так может такого логина нет?
Или я просто ошибся в операторах ПХП не зная как правильно пишется условный оператор.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2014, 21:15   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

если логин строка, а он строка, то надо в кавычки экранировать ... where login='".($_GET['login'])."'"
ADSoft вне форума Ответить с цитированием
Старый 26.04.2014, 21:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то надо в кавычки экранировать
Кстати нужно еще выяснить как с завершающими пробелами дела обстоят. Бывает такое что в БД поле стоковое дополнятся пробелами, тогда нужно урезать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.04.2014, 21:39   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

про пробелы четто загнул.... не встречал таких типов в MySQL
ADSoft вне форума Ответить с цитированием
Старый 26.04.2014, 21:41   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну я с таким в Оракле и Файерберде столкнулся. Когда поле char(100) к примеру, а данных в них символов 10-20, так вот такие записи дополняются в поле пробельным символом. Ну и соответственно в запросе с ним же и возвращаются. Приходится использовать trim() для усечения или like в самом запросе.
Думаю это зависит от настройки самой БД, не исключено что в мускуле так тоже можно сделать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2014, 01:06   #9
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

По моему проблема с кодировкой, да и пробел может быть как уже писали выше...
Сам в свое время полчаса рассматривал две одинаковые строки и пытался понять почему они не одинаковые))))
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WPF. странно работает тригер D][mon WPF, UWP, WinRT, XAML 1 28.11.2012 09:41
Странно работает Intel HD Graphics Serkoll Компьютерное железо 3 11.10.2012 15:34
БД Interbase работает странно. Yo_Asakyra БД в Delphi 1 27.05.2012 23:58
Удаление строки в StringGrid работает как-то странно. Turboworld Общие вопросы Delphi 3 25.04.2011 09:04
странно работает RegSetValueEx di91 Win Api 4 07.11.2010 15:27