[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql_fetch_array
pultter
доброго времени суток!
я делаю систему восстановления пароля. на локальном сервере все работало. теперь когда тестирую на хостинге, не все так гладко как хотелось бы. после того как "пользователь" вводит свой email (на который придет ссылка для изменения пароля), сервер начинает ругаться.. вот что он говорит:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/mynvrsk/public_html/insolution.ru/likser/index.php on line 41

в 41 строке у меня находится следующая запись:
PHP
<?php $r mysql_fetch_array($q);


если нужно, могу выложить код..
заранее благодарю



Спустя 4 минуты, 57 секунд (28.07.2009 - 14:58) sergeiss написал(а):
Код показывай обязательно! Ты же не первый день на форуме, должен понимать, что без кода сложно что-то сказать.

Единственное, что пока достоверно - это то, что запрос у тебя не выполняется.

Спустя 13 минут, 39 секунд (28.07.2009 - 15:12) Gabriel написал(а):
а куда тут без кода:) в ошибке написано что неправильный аргумент следовательно чтото в запросе нетак

Спустя 1 час, 40 минут, 47 секунд (28.07.2009 - 16:53) pultter написал(а):
собственно код..
PHP
<?php
/*
$ch = connect host
$cu = connect user
$cp = connect password
$dbn = data base name
$q = query - запрос к базе данных
$tn = table name
$r = row - данные из базы
$md5p = md5 от пароля занесенного в базу
$t = title - тема сообщения
$b = body - само письмо
$m = e-mail получателя
*/
error_reporting(E_ALL & ~E_NOTICE);
// setting for connect mysql




function fc(){
$dh="localhost";
$du="mynvrsk_i01";
$dp="password";
$dd="mynvrsk_i01";
$dc=@mysql_connect($dh,$du,$dp);
$ds=@mysql_select_db($dd);
$dn=mysql_query('SET NAMES cp1251');
$tn = "user";

if(!
$dc){die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Невозможно подключиться к MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");
}elseif(!
$ds){die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Невозможно получить доступ к нужной базе данных MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");}
}

print "<a href=\"reg.php\">reg</a>";
fc();
    if (count($_POST)>0):
// запрос на поиск в бд пользователя с введенным e mail
$q = mysql_query("SELECT * FROM ".$tn." WHERE email='".$_POST['m']."'");
// заносим все полученное из бд в переменную
$r = mysql_fetch_array($q);
// делаем md5 от md5 пароля
$md5p = md5($r['password']);
// установки для отправки e-mail
ini_set("SMTP", "localhost");
ini_set("smtp_port", "25");
// шаблон письма.
// тема
$t = "Change password";
// само письмо
$b = "Hello. Your link for change password: http://www.likser.insolution.ru/index.php?l=".$r['login']."&p=".$md5p."";
// а теперь проверяем успешно ли отправлено письмо
    if (mail($m, $t, $b)) {
        print "ok<br>";
    } else {
        print "bad<br>";
    }
    endif;


HTML
<form action=index.php?send method=post>
email<input type=text name=m><br>
<input type=submit>
</form>

Спустя 12 минут, 45 секунд (28.07.2009 - 17:05) Gabriel написал(а):
HTML
<form action=index.php?send method=post>
email<input type=text name=m><br>
<input type=submit>
</form>

кавычки однако

Спустя 7 минут, 29 секунд (28.07.2009 - 17:13) pultter написал(а):
Gabriel, кавычки ничего не меняют...

Спустя 1 час, 6 минут, 3 секунды (28.07.2009 - 18:19) Kuliev написал(а):
pultter
PHP
$q mysql_query("SELECT * FROM `".$tn."` WHERE email='".$_POST['m']."'");


Попробуй так, потому что, Ваше имя таблицы зарезервированное мускулом

Спустя 33 минуты, 7 секунд (28.07.2009 - 18:52) pultter написал(а):
Kuliev, все равно тот же результат

Спустя 4 минуты, 36 секунд (28.07.2009 - 18:57) Sylex написал(а):
PHP
$q mysql_query("SELECT * FROM ".$tn." WHERE email='".$_POST['m']."'") or die(mysql_error());


выведет ошибку на экран...

не существует таблица, или поле в таблице, или $_POST['m'] неэкранирована

или тупо не произошел коннект к базе или выбор базы, т.к. ты ошибки давешь @, зачем?

Спустя 2 минуты, 6 секунд (28.07.2009 - 18:59) Kuliev написал(а):
pultter
PHP
$sql = ("SELECT * FROM ".$tn." WHERE email='".$_POST['m']."'");
$res mysql_query($sql) or die (mysql_error() ."<br/>"$sql);

Ну ка покажи что выведет.

Спустя 1 час, 31 минута, 12 секунд (28.07.2009 - 20:30) ИНСИ написал(а):
Kuliev помоему ты сказал то, же что и Sylex, просто расписал =))

а так по вопросу. Проверь, существует ли у тебя таблица в БД с названием, которое даешь, либо поле email?

Проблема только в этом =))

Спустя 1 минута, 51 секунда (28.07.2009 - 20:32) Kuliev написал(а):
Цитата (welbox2 @ 28.07.2009 - 22:30)
Kuliev помоему ты сказал то, же что и Sylex, просто расписал =))

а так по вопросу. Проверь, существует ли у тебя таблица в БД с названием, которое даешь, либо поле email?

Проблема только в этом =))

я знаю, только разница в постах в 2 сек, а удалять лень!

Спустя 48 минут, 58 секунд (28.07.2009 - 21:21) pultter написал(а):
вот что он мне написал:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE email='likser@bk.ru*'' at line 1
а если по русски то вот:
У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом 'ГДЕ ='likser@bk.ru* электронной почты" в линии 1

*этот email я ввел в строку. по идее на него должно прийти сообщение со ссылкой. и оно приходит, но логина там нет

Спустя 15 минут, 34 секунды (28.07.2009 - 21:36) sergeiss написал(а):
Запиши весь запрос в переменную, выведи его, когда он уже готов. Может быть, ты там где-то пробел забыл... Или еще что-то?

И попробуй поставить email в обратные кавычки.

Спустя 2 часа, 27 минут, 44 секунды (29.07.2009 - 00:04) Gabriel написал(а):
PHP
<?php
/*
$ch = connect host
$cu = connect user
$cp = connect password
$dbn = data base name
$q = query - запрос к базе данных
$tn = table name
$r = row - данные из базы
$md5p = md5 от пароля занесенного в базу
$t = title - тема сообщения
$b = body - само письмо
$m = e-mail получателя
*/
error_reporting(E_ALL & ~E_NOTICE);
// setting for connect mysql




function fc(){
$dh="";
$du="";
$dp="";
$dd="";
$dc=@mysql_connect($dh,$du,$dp);
$ds=@mysql_select_db($dd);
$dn=mysql_query('SET NAMES cp1251');
$tn = "user";

if(!
$dc){
    die("<div style='font-family:Verdana;font-size:11px;text-align:center;'>
        <b>Невозможно подключиться к MySQL</b><br>"
.mysql_errno()." : ".mysql_error()."</div>");
}elseif(!
$ds){
    die("<div style='font-family:Verdana;font-size:11px;text-align:center;'>
        <b>Невозможно получить доступ к нужной базе данных MySQL</b><br>"
.mysql_errno()." : ".mysql_error()."</div>");
    }
}
echo "<a href=\"reg.php\">reg</a>";
fc();
    if (count($_POST["submit"])>0){
// запрос на поиск в бд пользователя с введенным e mail
$q = mysql_query("SELECT * FROM ".$tn." WHERE email='".$m."'");
// заносим все полученное из бд в переменную
$r = mysql_fetch_array($q);
// делаем md5 от md5 пароля
$md5p = md5($r['password']);
// установки для отправки e-mail
ini_set("SMTP", "localhost");
ini_set("smtp_port", "25");
// шаблон письма.
// тема
$t = "Change password";
// само письмо
$b = "Hello. Your link for change password: http://www.likser.insolution.ru/index.php?l=".$r['login']."&p=".$md5p."";
// а теперь проверяем успешно ли отправлено письмо
    if (mail($m, $t, $b)) {
        echo "ok<br>";
    } else {
        echo "bad<br>";
    }
    }

HTML
<form action="" method="post">
email<input type="text" name="m"><br>
<input type="submit" value="submit">
</form>

потестил тоже ругался. минут 5ть думал в чемже заморочка и нашел стороку
PHP
if (count($_POST)>0):

добaвил кнупку в форму и к $_POST изменил на $_POST["submit"] не ругаетсО (если заменить $_POST["submit"] на $m тоже не ругаетсО)
несудите строго ибо в 11 ночи после 3ех суток без сна получаетсо белибеда
Пы.Сы. на будущее пиши переменные в коментах и в коде одинаковые

Спустя 19 часов, 35 минут, 16 секунд (29.07.2009 - 19:39) ИНСИ написал(а):
тебе вот это ничего не говорит=)) ???
PHP
'WHERE email='likser@bk.ru*''


мне кажется там * лишняя =))

Спустя 1 час, 55 минут, 2 секунды (29.07.2009 - 21:34) DeeKeiD написал(а):
хм уменя была подобная ошибка когда я пытался в базе вместо "description" использовать "desc"

Спустя 1 день, 22 часа, 56 минут, 12 секунд (31.07.2009 - 20:31) pultter написал(а):
всем спасибо, в особенности Gabriel... сервер больше не возникает.. :-)

Спустя 1 день, 16 часов, 18 минут, 46 секунд (3.08.2009 - 12:49) Gabriel написал(а):
он не возникал:) вы просто непонимали друг друга:)

Спустя 1 час, 29 минут, 4 секунды (3.08.2009 - 14:18) ИНСИ написал(а):
Gabriel РЕСПЕКТ!!! biggrin.gif


_____________
Напишу индусский код. Бесплатно
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.