Поиск и проверка данных из Php

Статус
Закрыто для дальнейших ответов.

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Вот у нас есть в MySQL:
База данных: clan
Две таблицы: clan_reg и clan_admin(причём clan_ это не преффикс я не знаю точно как вводить преффикс! :blush: )
clan_reg:
5 полей: ip,name,password,email,city.
clan_admin:
3 поля: ip,nameadm,passwordadm.

И есть файл PHP:
Разделы в файле PHP(Регистрация, Вход, Админка)
Вход: два поля для ввода имени и пароля пользователя($name и $password)

Вот вопрос:
Как мне проверить в php введённые данные с данными MySQL и именно, чтобы данные, введённые в PHP, находились в MySQL таблицы в одной строчке(Пароли в MySQL находятся в md5 формате)

Админка: Имя и пароль администратора($nameadm и $passwordadm)
Такой же вопрос! (Пароли в MySQL находятся в md5 формате)


Позже у меня будут ещё вопросы к вам!

Мой способ решения:
Подключение к базе данных через include

Код:
$thx = mysql_query("SELECT * from clan_reg where password=md5($password) and name=$name");
if (!isset($thx)){
echo ""
}else{
echo""
}
Но мне кажется, что в переменной $thx будет содержаться значение успешного или не успешного выполнения запроса :wacko:

Я делаю свой скрипт :laugh: (собственный)
Напишите плиз свои размышления!
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE если запрос не был выполнен. В остальных случаях, mysql_query() возвращает TRUE в случае успешного запроса и FALSE в случае ошибки. Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.
Справка по PHP

Как мне проверить в php введённые данные с данными MySQL и именно, чтобы данные, введённые в PHP, находились в MySQL таблицы в одной строчке
Вы поставили между условиями ключевое слово AND, значит оба условия должны выполниться в одной записи.
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Я понял там надо не
Код:
$thx = mysql_query("SELECT * from clan_reg where password=md5($password) and name=$name");
if (!isset($thx)){
echo ""
}else{
echo""
}
А
Код:
mysql_query("SELECT * from clan_reg where name='$name' and password='md5($password)'");
mysql_num_rows($thx);
if ($thx===0){
echo "ХХХ Вы ошились XXX!!!";
}else{
echo"Спасибо за вход";
 }
Но у меня всё равно не прёт
Прочитал в Котерове(но там написано int mysql_num_rows(int $resultat) )
Но у меня не работает вылетают ошибки и всё путается :dry:
Код:
Notice: Undefined variable: thx in k:\home\localhost\www\proect\reg.php on line 2
[Денвер: показать возможную причину ошибки]
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in k:\home\localhost\www\proect\reg.php on line 2

Notice: Undefined variable: thx in k:\home\localhost\www\proect\reg.php on line 3
(Строчки я изсенил, т.к. выставляю не весь файл и скрипт :huh: )

Подскажите кто знает как проверять?
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Я сделал :biggrin: Как там mysql_query() and ();

Но там ведь она не учитывает строчки, и если в таблице есть такие значения то она выведет
А мне надо в одной строчке!
Покажу на примере
В mysql:
name-Zitoss password-1
name-zina password-2
Вводим в PHP в поле name(Zitoss)
в поле password(2)
выдаст приветствие
А это не правильно!

Как сделать, чтобы она учитывала одну строчку!

2deMone:
Вы поставили между условиями ключевое слово AND, значит оба условия должны выполниться в одной записи.
Читайте выше выдаёт ошибку
Работает только через два SELECT

работает только так
 

R1S

Well-Known Member
Регистрация
11.01.2006
Сообщения
160
да, все вродь должно работать корректно. А что значит "работает через два селекта"?
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
А правильный запрос, между тем, выглядел так:
Код:
$res=mysql_query("SELECT * FROM `clan_reg` WHERE `password`='" . md5($password) . "' AND `name`='" . $name . "' LIMIT 1");
$i=@mysql_fetch_assoc($res);
if (!empty($i)) {
// есть такой
} else {
// нет таких
}
 

R1S

Well-Known Member
Регистрация
11.01.2006
Сообщения
160
ну если поля name и password не однозначно определяют юзера, то лимит необходим. deMone, а вот такая конструкция - " . $name . ", в запросе что означает?(я имю ввиду пробелы и точки, просто такого еще не встречал)
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
2R1S: Это обычная конкатенация строк. Пример:

Код:
$asd='111';
echo 'lala'.$asd.'asdasd';
Просто он пробелы ставит:)
 

R1S

Well-Known Member
Регистрация
11.01.2006
Сообщения
160
а млин точно чет миня переглючило :)) это ж пхп млин :)), я то думал на чистый скул запрос :) ффот у чему невнимательность приводит :)
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Спасибо всё работает!
У меня правда возник вопрос что за LIMIT 1?
Растояние между строчками в которых могут находиться данные?
1 это в одной строчке или как?
:laugh:
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Нет, это значит что он вернёт только одну запись
 
Статус
Закрыто для дальнейших ответов.
Верх Низ