|
|
|
| Привет всем!
Хочу реализовать следующее:
Если человек вводит урл http://localhost/phpsite/view_key.php?key=12345 И в базе (MySQL) найден этот ключ, то сообщаем ему (Ваш ключ (12345) найден в БД) или в противном случае, выводим тоже сообщение, только уже не true а false т.е. (Ваш ключ (1234) не найден в БД).
Я создал базу, в ней таблицу user, в которой 2 поля, первичный ключ (id) и key. Вставил в эту таблицу три раза разные ключи, например (12345,123456,1234567).
Но когда я ввожу http://localhost/phpsite/view_key.php?key=123456 то ключ не найден, до этого вводил 12345, и все прошло успешно я так понимаю что в mysql_fetch_array занеслось только первое поля. Проблему понял, только не знаю какой функцией ее разрешить.
Дело в том что как я выше уже сказал, в mysql_fetch_array заносится только первое поля, а как сделать так, что б проверялись все поля.
С уважением Александр. | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 07:39)
| | проверяйте средствами MySQL | |
|
|
|
|
|
|
|
для: Root
(16.04.2008 в 07:54)
| | В том и дело. Я незнаю как проверить все сразу поля? | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 08:02)
| |
SELECT * FROM tbl_name WHERE key = 12345
|
| |
|
|
|
|
|
|
|
для: Root
(16.04.2008 в 08:08)
| | Вы не правильно меня поняли.
У меня в базе много ключей. Я хочу проверять ключ переданный через адресную строку ($_GET), совпадает он с значением в базе или нет.
если совпал то вывести "true" если нет то "false".
Я написал скрипт. Но он проверяет только первое поле. Как сделать чтоб проверялись все поля? | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 08:23)
| |
<?php
$query = "SELECT * FROM tbl_name WHERE key = $_GET[key]";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0)
echo "найден";
?>
|
| |
|
|
|
|
|
|
|
для: Root
(16.04.2008 в 08:27)
| | >
><?php
>$query = "SELECT * FROM tbl_name WHERE key = $_GET[key]";
>$res = mysql_query($query);
>if(mysql_num_rows($res) > 0)
> echo "найден";
>?>
>
|
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\proxyc\test.php on line 6
код таблицы
# Дамп данных таблицы `user`
#
INSERT INTO `user` VALUES (1, '1');
INSERT INTO `user` VALUES (3, '2');
INSERT INTO `user` VALUES (4, '3')
|
| |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 10:00)
| |
<?php
$query = "SELECT * FROM tbl_name WHERE key = '$_GET[key]'";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0)
echo "найден";
?>
|
| |
|
|
|
|
|
|
|
для: Root
(16.04.2008 в 10:15)
| | >
><?php
>$query = "SELECT * FROM tbl_name WHERE key = '$_GET[key]'";
>$res = mysql_query($query);
>if(mysql_num_rows($res) > 0)
> echo "найден";
>?>
>
|
К сожалению, и с кавычками тот-же результат.. | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 10:49)
| |
<?php
$query = "SELECT * FROM tbl_name WHERE key = '".$_GET["key"]."'";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0)
echo "найден";
?>
|
| |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 11:02)
| | >
<?php
>$query = "SELECT * FROM tbl_name WHERE key = '".$_GET["key"]."'";
>$res = mysql_query($query);
>if(mysql_num_rows($res) > 0)
> echo "найден";
>?>
|
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\proxyc\test.php on line 6 | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 11:28)
| | Неужели нет других вариантов - сделать проверку в таблице, на значение, которое данно через $_GET и если true, выводим верно. | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 11:31)
| |
<? echo "SELECT * FROM tbl_name WHERE key = '".$_GET["key"]."'"; ?>
| - что пишет? | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 12:05)
| | >
<? echo "SELECT * FROM tbl_name WHERE key = '".$_GET["key"]."'"; ?>
| - что пишет?
SELECT * FROM user WHERE key = '1'
У меня в базе созданы
1
2
3
ключа | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 13:04)
| | У меня в базе созданы
====================
в таблице user? | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 13:13)
| | Да. | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 13:24)
| | попробуйте убрать условие WHERE, а после mysql_query($query) дописать or die(mysql_error());
есть возможность проверить запрос не в скрипте, а в каком-нибудь интерфейсе для базы, вроде
PHPmyAdmin? | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 13:41)
| | >попробуйте убрать условие WHERE, а после mysql_query($query) дописать or die(mysql_error());
>есть возможность проверить запрос не в скрипте, а в каком-нибудь интерфейсе для базы, вроде
>PHPmyAdmin?
Вот этот код выводит всегда, "найден" без кавычек.
$query = "SELECT * FROM user";
$res = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($res) > 0)
echo "найден";
|
Но мне нужно, если человек ввел test.php?key=12345 и это число 12345 есть в таблице, то вывести найден. А если нет то Не найден.
А код, что выше, всегда выводит "найден". Даже просто если ввести test.php | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 14:01)
| | >есть возможность проверить запрос не в скрипте, а в каком-нибудь интерфейсе для базы, вроде
>PHPmyAdmin?
Это как? PHPmyAdmin есть... | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 14:10)
| |
<?php
$query = "SELECT * FROM tbl_name WHERE `key` = '$_GET[key]'";
$res = mysql_query($query);
if(mysql_num_rows($res) > 0)
echo "найден";
?>
|
| |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 14:01)
| | надо было проверить запрос без условий. т.е. разобрать полученный результат mysql_fetch_array(), вывести результаты, посмотреть ЧТО на самом деле в базе.... или проверить, как выполняется запрос в ПМА. если в запросе ошибок нет, значит, или условие не выполняется или таблицы нет, или поля с таким значением или... черт знает что... | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 18:35)
| | наверное из-за "key", зарезервированное слово | |
|
|
|
|
|
|
|
для: Root
(16.04.2008 в 18:54)
| | точно. а вот если бы он проверил, как просили, в каком-нибудь интерфейсе для базы, это сразу бы выяснилось. мне просто лениво было делать у себя таблицу и проверять запрос...
когда-то я тоже долго мучалась со словом order... даже распечатала список зарезервированных слов. но потом забыла. обычно даю столбцам имена на греческом (латинскими буквами), таких слов MySQL точно не знает :) | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 18:35)
| | >надо было проверить запрос без условий. т.е. разобрать полученный результат mysql_fetch_array(), вывести результаты, посмотреть ЧТО на самом деле в базе.... или проверить, как выполняется запрос в ПМА. если в запросе ошибок нет, значит, или условие не выполняется или таблицы нет, или поля с таким значением или... черт знает что...
Все верно выводит
1
2
3 | |
|
|
|
|
|
|
|
для: AlexDIXI
(16.04.2008 в 21:09)
| | и не ругается на слово key? вообще-то, если оно в обратных кавычках, то должно прокатить... | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 21:18)
| | >и не ругается на слово key? вообще-то, если оно в обратных кавычках, то должно прокатить...
там запрос без условия и соответственно без "key".
А в обратных кавычках прокатит :) | |
|
|
|
|
|
|
|
для: elenaki
(16.04.2008 в 18:35)
| | Заработало :)!
Спасибо огромное ребятам и если я правильно понял девчатам тоже. | |
|
|
|