|
|
|
| Не работает, пишет ошибку...
В таблицах ни одной записи нет.
Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in F:\www\apache\htdocs\index.php on line 32
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in F:\www\apache\htdocs\index.php on line 32
Уважаемый, Anonymous! Для заказа товара необходимо зарегестрироваться!
Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in F:\www\apache\htdocs\index.php on line 48
|
Что не впорядке? Подскажите, пожалуйста!
Привожу структуру таблиц:
Структура таблицы `session_user`
--
CREATE TABLE `session_user` (
`id_sess` int(11) NOT NULL COMMENT 'уник номер ',
`session_id` varchar(250) NOT NULL COMMENT 'сессия',
PRIMARY KEY (`id_sess`),
UNIQUE KEY `session_id` (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='Таблица сессий пользователя';
-- --------------------------------------------------------
--
-- Структура таблицы `users`
--
CREATE TABLE `users` (
`id_user` int(11) unsigned NOT NULL auto_increment COMMENT 'уникальный номер пользователя в системе',
`login` varchar(20) NOT NULL COMMENT 'логин',
`password` varchar(128) NOT NULL COMMENT 'пароль',
`date_last` datetime NOT NULL COMMENT 'дата последнего захода',
`name_01` varchar(60) NOT NULL COMMENT 'имя',
`name_02` varchar(60) NOT NULL COMMENT 'фамилия ',
`name_03` varchar(60) NOT NULL COMMENT 'отчество',
`date_reg` datetime NOT NULL default '0000-00-00 00:00:00' COMMENT 'дата регистрации',
`adress_sity` tinytext COMMENT 'город, где живет клиент',
`adress_street` tinytext COMMENT 'улица, где живет клиент',
`adress_home` tinytext COMMENT 'дом, где живет клиент',
`post_index` int(11) NOT NULL COMMENT 'почтовый индекс',
`authorization` enum('1','2','3') NOT NULL default '1' COMMENT 'авторизация (1- нет, 2- да, 3 - клиенту выслано письмо о подтверждении регистрации, но не получен ответ)',
`email` tinytext,
`cod_tel_country` int(5) default NULL COMMENT 'цифровой код страны',
`cod_tel_city` int(5) default NULL COMMENT 'телефонный цифровой код города в стране ',
`tel` int(8) default NULL COMMENT 'телефон ',
`fax` int(8) default NULL COMMENT 'факс',
PRIMARY KEY (`id_user`),
UNIQUE KEY `login` (`login`),
KEY `date_last` (`date_last`),
KEY `password` (`password`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='таблица пользователей' AUTO_INCREMENT=1 ;
|
И файлик index.php
<?php
session_start();
include("conf/config.php");
//проверяем, заходил ли такой пользователь к нам
if(!isset($_COOKIE['login']) && !isset($_COOKIE['password']))
{
if(!isset($_SESSION['password']) && !isset($_SESSION['login']))
{
$_SESSION['login'] = 'Anonymous';
$_SESSION['password'] = "";
$msg = "Вы пришли на сайт как Незарегестрированный пользователь.";
$msg2 = "Уважаемый, ".$_SESSION['login']."! Для заказа товара необходимо зарегестрироваться!";
echo $msg;
exit();
}
else
{
//проверяем есть ли такой пользователь в таблице users;
$zapros = "select count(*) from `users` where password=".md5($_SESSION['password'])." and login=".$_SESSION['login'];
$res_zapros = mysql_query($zapros);
if($res_zapros && mysql_num_rows($res_zapros)>0)
{
//пользователь имеется
//обнавляем дату последнего захода на сайт
$query = "UPDATE users SET date_last=NOW() where password=".md5($_SESSION['password'])." and login=".$_SESSION['login'];
$res = mysql_query($query);
}
else
{
echo mysql_errno($res_zapros).mysql_error($res_zapros);
$_SESSION['login'] = 'Anonymous';
$_SESSION['password'] = "";
$msg = "Вы пришли на сайт как Незарегестрированный пользователь.";
$msg2 = "Уважаемый, ".$_SESSION['login']."! Для заказа товара необходимо зарегестрироваться!";
echo $msg2;
}
$query_session = "select count(*) from session_user where session_id=".session_id();
$res_ses = mysql_query($query_session);
if($res_ses && mysql_num_rows($res_ses)<1)
{
$query_in_session = "insert into session_user values( NULL, session_id())";
mysql_query($query_in_session);
}
else
{
echo mysql_errno($res_ses);
}
}
}
?>
|
PS: Прошу прощения, если не в тот раздел написал. | |
|
|
|
|
|
|
|
для: RomantikPro
(05.02.2007 в 16:32)
| | мне кажется всё просто.
так как записей в таблице нет то переменная $res_zapros остаётся пустой.
условие то вот оно
if($res_zapros && mysql_num_rows($res_zapros)>0)
{
........
}
else
{
echo mysql_errno($res_zapros).mysql_error($res_zapros);
}
|
собственно код в котором варнинг (это не ошибка) выполняется при условии пустого ответа на запрос в бд.
вль и имеем результат Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in F:\www\apache\htdocs\index.php on line 32
потому как функции mysql_errno() & mysql_error() передаётся пустое значение в качестве аргумента | |
|
|
|
|
|
|
|
для: RomantikPro
(05.02.2007 в 16:32)
| | $zapros = "select count(*) from `users` where password=".md5($_SESSION['password'])." and login=".$_SESSION['login'];
Похоже ошибка здесь. | |
|
|
|
|
|
|
|
для: alek_chita
(05.02.2007 в 17:07)
| | В таблицах ни одной записи нет.
запрос по сути правильный
просто ничего не выбирается из базы. нечего выбирать | |
|
|
|
|
|
|
|
для: alek_chita
(05.02.2007 в 17:07)
| | Я писал и вот так, т.е. без count(*).
Вот так
$zapros = "select * from `users` where password=".md5($_SESSION['password'])." and login=".$_SESSION['login'];
|
все равно такая ошибка,
Получается, чтобы не было такой ошибки в таблице должна быть хотя бы одна запись и не обязательно та которую выбираю запросом? Если так, то попробую позже вставить данные...
Мне не понятно почему возвращается такая ошибка, а ведь должно возвращаться значение дескриптора запроса равное нулю...которое и проверяется в условии if() | |
|
|
|
|
|
|
|
для: RomantikPro
(05.02.2007 в 17:12)
| | в общем, я описала в чём ошибка ;) | |
|
|
|