Вот так выгледит сейчас: Я хочу, чтобы когда впишешь в тот текстовый input допустим "1", так у того пользователя вместо уже Пользователь[0], будет Администратор[1]. Ну я как бы всё сделал , но у меня все пользователи делаюются 1, вообщем я не знаю как сделать, чтоб именно для того пользователя сменилось. PHP: <?php $id = $_SESSION['id']; $mysqli = mysqli_connect("localhost", "root", "", "nobiblio"); $res = mysqli_query($mysqli, "SELECT `status` FROM `users` WHERE `id`='" . $id . "'"); if ($res) { $status = mysqli_fetch_assoc($res); if ($status['status'] == 0) { $flag = false; $result = mysqli_query($mysqli, "SELECT login,id,status FROM users ORDER BY login"); ?>Список пользователей для <b>пользователя:</b><br><?php while ($myrow = mysqli_fetch_array($result)) {?> <p> <?php if($myrow['status'] == 0) {$kas = "Пользователь";} else if($myrow['status'] == 1){$kas = "Администратор";} echo '<br> Пользователь является - <b>'. $kas.'</b> - '; printf("<a href='page.php?id=%s'>%s</a><br>", $myrow['id'], $myrow['login']); }?> <p> <?php } else if($status['status'] == 1){ $flag = true; $result = mysqli_query($mysqli, "SELECT login,id,status,email,activation,date FROM users ORDER BY login"); ?><hr><h2>Список пользователей для <b>Администратора:</b></h2><?php while ($myrow = mysqli_fetch_array($result)) {?> <p> <?php if($flag){?> <span><?php if($myrow['activation'] == 0) {$da = "Нет";} else if($myrow['activation'] == 1){$da = "Да";} if($myrow['status'] == 0) {$kas = "Пользователь";} else if($myrow['status'] == 1){$kas = "Администратор";} $mylogin='<br>'.$myrow['login']; $myid=$myrow['id']; printf("<a href='page.php?id=%s'>%s</a><br>",$myid, $mylogin ); echo 'ID - <b>'.$myrow['id'].'</b>'; echo '<br> Пользователь является - <b>' .$kas.'['.$myrow['status'].']</b> <Br> Эл. Почта - <b>' .$myrow['email'].'</b><br> Пользователь подтвердил регистрацию? - <b>' .$da.'</b><Br>Дата регистрации: <b>'.$myrow['date'].'</b>'; print <<<HERE <form method='post'> Назначить должность:<br> <input name='status' type='text'> <input type='submit' name='submit' value='изменить'> </form> HERE; $statusas = $_POST['status']; if (isset($_POST['status']))//Если существует status { mysql_query("UPDATE users SET status='$statusas' WHERE id='$id'",$db); echo "<meta http-equiv='refresh' content='0;url=#'>"; } ?></span> <?php } }?> <p> <?php } } ?> Я даже знаю где проблема, но как там написать правильно, я не знаю. PHP: mysql_query("UPDATE users SET status='$statusas' WHERE id='$id'",$db); После WHERE уже и не правильно.
Даже не догадываетесь... Судя по стилю кода и названию переменных, особенно $myrow, ваша проблема в Женечке Попове или его адептах Пока ваш код не успели обложить трёхэтажными "эпитетами", я дам вам пищу для размышления: 1. Почему в одном случае вы используете расширение mysqli_*, а в другом mysql_*. 2. При этом, во втором случае используете переменную $db, которой должен был быть присвоен идентификатор соединения, но сама переменная в коде нигде не объявлена и ничего ей не присвоено. 3. Полная загадка с переменной $id. Почему она используется в самом первом запросе, еще понятно, но почему она же используется для запроса UPDATE - ХЗ. Не задумывались над тем, чтобы передавать значение ID из формы вместе со статусом? И кстати, session_start() где потеряли? 4. Превосходно получается: сначала вы присваиваете переменной $statusas значение $_POST['status'], а только потом проверяете: существует $_POST['status'] или нет ))
Так это не весь код я показал, выше там есть и session_start() и подключение к дб... Но у меня всё-ровно проблема не исправляется. PHP: <?php session_start(); include ("bd.php"); if (!empty($_SESSION['login']) and !empty($_SESSION['password'])) { $login = $_SESSION['login']; $password = $_SESSION['password']; $result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); $myrow2 = mysql_fetch_array($result2); if (empty($myrow2['id'])) { exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); } } else { exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); } ?> <html> <head> <title>Список пользователей</title> </head> <body> <h2>Список пользователей</h2> <?php
причем тут база, вот тут нужно правильно написать PHP: mysql_query("UPDATE users SET status='$statusas' WHERE id='$id'",$db);
не надо! Я уже старенький и мне нервы беречь нужно. --- Добавлено --- "правильно" и "чтоб работало" вещи совместимые, но разные по определению. У вас код рабочий. А причину, почему результат у вас не такой, как ожидаете, я уже написал выше - из формы вы не передаёте ID конкретного пользователя.
Хорошо, я понял, что нужно когда нажимаешь на кнопку, так она как-то проверила бы ид. Что-то в name нужно написать, где input type submit.