За последние 24 часа нас посетили 34474 программиста и 1752 робота. Сейчас ищут 986 программистов ...

Не сравнивает функция WHERE

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 24 янв 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Вот есть запрос в БД на существование имени но, не находит хотя в БД имя есть. ПРобовал различными функциями на срвавнение строк они говорят что то что в БД и то что я ему лаю совпадают делал вардамп тоже все ок. А вот WHERE нивкакую в чем причина?

    PHP:
    1. $log = "Виктор";
    2.         $select_login = mysql_query("SELECT login FROM users WHERE name = $log");
    3.         $res_login = mysql_fetch_assoc($select_login);
    --- Добавлено ---
    PHP:
    1. $log = "Виктор";
    2.         $select_login = mysql_query("SELECT login FROM users WHERE name = '$log'");
    3.         $res_login = mysql_fetch_assoc($select_login);
    ТЕМА ЗАКРЫТА, решил проблему
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Причина в тебе. PHP всегда прав.

    Зачем тебе where если ты из бд достаешь только одну строку? Или ты достаешь несколько?
     
  3. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @TeslaFeo, ты щас то понял, что сказал?)
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    @acho я то понял. Цитату пожалуйста, что именно не так.
    Просто глядя на запрос возникает ощущение что нужно одна строка из бд. В таком случае where не нужен. Человек говорит, что where не работает (что я всегда воспринимаю как полный бред.
    "Я тут такой умный и красивый всё делаю правильно, а эта тупая машина не хочет работать").
     
  5. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Круто, я тут понял что WHERE немного не пйодет она не учитывает регистр. сделал по другому всем спасибо.
     
  6. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @TeslaFeo,
    с чего бы это? Даже если нужна одна строка из бд по определённому условию, почему ты утверждаешь, что where не нужен? Другой вопрос, что у него условие без учёта регистра должно быть. Но это конкретно его случай. Как достать одну строку из бд, где айди равно 5 без where?
     
  7. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Так харе. Мне Where не подходит по пречине выше. эта функция проверяет наличие логина в бд. я проверяю с помощью "strcmp" .
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    @acho ой простите простите я перепутал where и while. Принял where за while еще когда читал название темы. Самому смешно)))
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Ты проблему решил, а мы тут оффтопим сколько нам влезет. А своё
     
    #9 TeslaFeo, 24 янв 2017
    Последнее редактирование модератором: 24 янв 2017
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Трындец. Выбираешь всю базу, и каждый логин сравниваешь strcmp?
    https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html - множество способов, как сделать регистрозависимый поиск mysql
    --- Добавлено ---
    Код (Text):
    1. select "a"="A"; # даст 1 если регистронезависимое сравнение
    2. select binary "a" = "A"; # даст 0 всегда