X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> php+mysql. Помогите с проблемой
rus-xp
rus-xp
Topic Starter сообщение 26.3.2011, 13:56; Ответить: rus-xp
Сообщение #1


Ну вот, вновь столкнулся с проблемой.

Есть база данных пользователей, в которой существует столбец status, определяющий статус пользователя(бан, админ, пользователь).
В общем столкнулся с проблемой, при изменении статуса из админ панели.

Под админ панель создана отдельная папка, назовем её "admin". В ней находятся файлы users.php, index.php, do.php

index.php
....
switch ($do) {
case 'show_users':
include 'users.php';
break;
...

Точки конечно роли не играют, показываают, что это отрывок кода. Идем далее:
users.php
$adm = $_GET['adm'];
switch ($adm) {
case 'st':
include 'adm.php';
break;


default:

$userhtml='';
$sql = "SELECT * FROM users ORDER BY id DESC";
$result = mysql_query($sql);
while($data = mysql_fetch_array($result))
{
if($data['status']=='1') {$status="OK";}
elseif($data['status']=='0') {$status="BANNED";}
elseif($data['status']=='9') {$status="ADMIN";};
$do = '<form action="/admin/index.php?do=show_users&adm=st&userid='.$data['id'].'" method="post"><select name="new_status"><option value="0">BANNED</option><option value="1">OK</option><option value="9">ADMIN</option></select><input type="submit" value="Изменить статус" /></form>';

С помощью adm.php
производим нужное действие. Код в нем:
if(isset($_GET['userid']))
{
$userid = $_GET['userid'];
$new_status = $_POST['new_status'];
$sql = "UPDATE users SET status='".$new_status."' WHERE id='".$userid."'";
$result = mysql_query($sql) or die("Query failed : " . mysql_error());
// echo $_POST['new_status'].'<br/>'.$userid;
};


Собственно, при нажатии из админки кнопки - он переходит на на страницу(позже настрою в ней редирект), передает переменные(на ура), однако не изменяет их а базе, т.е. нужное действие не происходит.
Также проверял запрос через пхпмайадмин - всё сработало.

Вроде, всё расписал... В чем ошибка? Помогите пожалуйста.

П.С. Мой первый проект, возможно в коде есть недочеты. Увлекаюсь пхп всего 2 месяца, так что сильно не ругайте smile.gif


--------------------
бан за клоноводство и обман администрации форума
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Aferist
Aferist
сообщение 26.3.2011, 14:00; Ответить: Aferist
Сообщение #2


попробуй заменить
$sql = "UPDATE users SET status='".$new_status."' WHERE id='".$userid."'";

на это
$sql = "UPDATE users SET status='{$new_status}' WHERE id='{$userid}' LIMIT 1";
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Henry
Henry
сообщение 26.3.2011, 14:06; Ответить: Henry
Сообщение #3


попробуй заменить
(rus-xp @ 26.3.2011, 12:56) *
$sql = "UPDATE users SET status='".$new_status."' WHERE id='".$userid."'";

или на, если $userid цифра
$sql = "UPDATE users SET status='".$new_status."' WHERE id=".$userid;


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebAction
WebAction
сообщение 26.3.2011, 14:14; Ответить: WebAction
Сообщение #4


ТС, помните советы что я Вам давал в прошлой теме?

Сделайте:

if(isset($_GET['userid']))
{
$userid = $_GET['userid'];
$new_status = $_POST['new_status'];
$sql = "UPDATE users SET status='".$new_status."' WHERE id='".$userid."'";
echo $sql;
$result = mysql_query($sql) or die("Query failed : " . mysql_error());
// echo $_POST['new_status'].'<br/>'.$userid;
};


И скажите, что получается на выходе.

$sql = "UPDATE users SET status='$new_status' WHERE id='$userid'"; - так тоже можно wink.gif


--------------------
--тут может быть ваша реклама--
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rus-xp
rus-xp
Topic Starter сообщение 26.3.2011, 14:45; Ответить: rus-xp
Сообщение #5


Action
Ну ту проблему я решил именно аналогичным способом. Странно, что тут что-то не так.
К слову, в этом случае все переменные передаются на ура. Проверял. И в этом случае используется только одна форма.

Перепробовал все запросы, которые тут приводились, к сожалению статус не меняется.
Какие будут ещё предложения?

(WebAction @ 26.3.2011, 13:14) *
ТС, помните советы что я Вам давал в прошлой теме?

Сделайте:

if(isset($_GET['userid']))
{
$userid = $_GET['userid'];
$new_status = $_POST['new_status'];
$sql = "UPDATE users SET status='".$new_status."' WHERE id='".$userid."'";
echo $sql;
$result = mysql_query($sql) or die("Query failed : " . mysql_error());
// echo $_POST['new_status'].'<br/>'.$userid;
};


И скажите, что получается на выходе.


UPDATE users SET status='0' WHERE id='28'
изменял статус на 0, 28 пользователю


--------------------
бан за клоноводство и обман администрации форума
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebAction
WebAction
сообщение 26.3.2011, 14:46; Ответить: WebAction
Сообщение #6


Если изменило статус, так в чем проблема?

Сообщение отредактировал WebAction - 26.3.2011, 14:47


--------------------
--тут может быть ваша реклама--
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rus-xp
rus-xp
Topic Starter сообщение 26.3.2011, 14:50; Ответить: rus-xp
Сообщение #7


(WebAction @ 26.3.2011, 13:46) *
Если изменило статус, так в чем проблема?

Именно в том, что статус не изменился


--------------------
бан за клоноводство и обман администрации форума
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Aferist
Aferist
сообщение 26.3.2011, 14:50; Ответить: Aferist
Сообщение #8


(rus-xp @ 26.3.2011, 13:45) *
UPDATE users SET status='0' WHERE id='28'
изменял статус на 0, 28 пользователю

прямо из php скрипта проверял?
или из пхпмуадмин?

а что пишет? ошибка вылазит какая-нибудь?

Сообщение отредактировал Aferist - 26.3.2011, 14:52
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebAction
WebAction
сообщение 26.3.2011, 14:57; Ответить: WebAction
Сообщение #9


А что если заменить

$result = mysql_query($sql) or die("Query failed : " . mysql_error());


на
mysql_query($sql) or die("Query failed : " . mysql_error());


Сообщения об ошибках все включены?


--------------------
--тут может быть ваша реклама--
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rus-xp
rus-xp
Topic Starter сообщение 26.3.2011, 15:01; Ответить: rus-xp
Сообщение #10


В общем, случайно коннектился не к той базе(запасная), при изменении статуса, изменил данные. Тем не менее проблема осталась:
Выдает:

"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/******/data/www/******/admin/function.php on line 31"


function.php подключен в index.php

function username_status($username, $password)
{
$status = 0;

$sql = "SELECT `status` FROM `users` WHERE `username` LIKE '".$username."' AND `password` LIKE '".$password."' LIMIT 0, 1";
$result = mysql_query($sql);
while($data = mysql_fetch_array($result)) //31 строка
{
$status = $data['status'];
};
return $status;
};


--------------------
бан за клоноводство и обман администрации форума
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 692 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3289 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1168 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44760 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1856 26.5.2023, 20:48
автор: Mixatraider


 



RSS Текстовая версия Сейчас: 28.3.2024, 13:00
Дизайн