Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему не получается сделать выборку, посмотрите код 
:(
    Опции темы
slang
Дата 15.8.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: 1
Всего: 0



Код

SELECT * FROM TB_LOGIN WHERE 'tb_login_login' LIKE 'admin' AND 'tb_login_pass' LIKE 'd41d8cd98f00b204e9800998ecf8427e'

возвращает Resource id #11 ($r)
Код

     for ($i = 0; $i<mysql_num_rows($r); $i++)    {
       $arr = mysql_fetch_array($r, MYSQL_ASSOC);
       foreach ($arr as $key=>$val)    {
          $mas[$i][$key] = $val;
          print ("<br>mas[$i][".$key."]=".$val);
          }
       }

если точнее, то mysql_num_rows($r) = 0, но ведь там есть запись, иначе не было Resource id #11 ($r)


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 15.8.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(slang @ 15.8.2005, 15:26)
если точнее, то mysql_num_rows($r) = 0, но ведь там есть запись, иначе не было Resource id #11 ($r)

Не факт. Пустой результат - тоже результат.

ЗЫ: Офтоп на счет сравнения логинов и пассов... Надо делать BINARy и равно, ане LIKE
PM ICQ   Вверх
slang
Дата 15.8.2005, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: 1
Всего: 0



Mal Hack, подскажи, что значит
Цитата
Надо делать BINARy и равно, ане LIKE
. Т.е. я понял, что LIKE не подходит, вероятно, потому, что он просматривает "вхождение строки". равно - я тоже понял - =., а что значит BINARy?
Цитата

Не факт. Пустой результат - тоже результат.

И при каких условиях может быть, что возвращается результат $r в запросе, где есть WHERE, а строки, все-таки нет?


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 15.8.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(slang @ 15.8.2005, 15:36)
И при каких условиях может быть, что возвращается результат $r в запросе, где есть WHERE, а строки, все-таки нет?

В любых. Выборка, которая не выбрала ни одной записи - тоже выборка.

Цитата(slang @ 15.8.2005, 15:36)
а что значит BINARy?

То, что строка будет бинарно сравниваться, тобишь ники ads и Ads будут разными, а в твоем случае одинкаовыми.
PM ICQ   Вверх
slang
Дата 15.8.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: 1
Всего: 0



Каким образом можно проверить, есть-ли строка, удовлетворяющая WHERE? если не так. В моем случае такая строка есть, но скрипт выше не показывает ее. в чем может быть ошибка?
Добавлено @ 15:07
Не нашел в книжке, как сравнить переменные "бинарно", подскажете?


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 15.8.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Значит такой записи - нет. Проверь запрос через PMA.
PM ICQ   Вверх
slang
Дата 15.8.2005, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: 1
Всего: 0



Mal Hack? как всегда прав. В запросе есть ошибка. Вместо
Код

SELECT * FROM TB_LOGIN WHERE 'tb_login_login' LIKE 'admin' AND 'tb_login_pass' LIKE 'd41d8cd98f00b204e9800998ecf8427e'

нужно писать
Код

SELECT * FROM `TB_LOGIN` WHERE `tb_login_login` LIKE 'admin' AND `tb_login_pass` LIKE 'd41d8cd98f00b204e9800998ecf8427e'

Заморочка в кавычках

Это сообщение отредактировал(а) slang - 15.8.2005, 15:35


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Phantom1
Дата 16.8.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 25.7.2005

Репутация: нет
Всего: 2



правильно говорят надо бинарно и через =
как я понил то логин записан в md5(или др.) то надо указывать

обязательно укажи столбцы user, pass а не *
BINARY - можеш непрописывать если в базе указал
примерно так:

sprintf("SELECT id, user, pass FROM `TB_LOGIN`
WHERE
user=addslashes('$login')
AND
pass=md5('$pass')) limit 1",addslashes($login), md5($pass));


PM MAIL   Вверх
Mal Hack
Дата 16.8.2005, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Phantom1
1. addslashes не надо, надо mysql_real_escape_string
2. Ее тут применять не к чему.
3. MD5 указывать у негои так уже есть.
PM ICQ   Вверх
Guest
Дата 18.8.2005, 13:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











насчет addslashes согласен можно и так
а вот насчет того что md5 не надо то несогласен
скорей всего это авторизация и логин и пароль приходят из формы
-> пользователь врятли будет вводин пароль в md 5 формате
  Вверх
Mal Hack
Дата 18.8.2005, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата
скорей всего это авторизация и логин и пароль приходят из формы
-> пользователь врятли будет вводин пароль в md 5 формате

Я имел ввиду ИМЕННО md5, в котором коллизию нашли smile
SHA1 к примеру..
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0721 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.