Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46

Изменение состояния кнопки и поля в бд по клику

25.10.2016, 21:04. Показов 5770. Ответов 14

Студворк — интернет-сервис помощи студентам
PHP уровень-'ниже плинтуса' но времени очень мало.Пытаюсь сделать редактирования поля бд. на сайте. В поле сделал кнопку, при нажатии на которую нужно что бы в в бд пошел запрос на изменение и тут же на сайте отобразилось это изменение... Испробовав пару разных вариантов остановившись на данном, столкнулся с проблемой (mysql_query() expects parameter 2 to be resource, null given in ). Но во вотом параметри у меня лежит переменная которая ссылается на mysql_connect(). То есть все должно бы быть правильно но не работает((
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 <link href="css/style.css" media="screen" rel="stylesheet">
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
 
 
</div>  
<div class="main">  
<?php
 
include("/connection.php");
mysql_select_db("userlistdb" ,$con);
$sql = mysql_query("SELECT * FROM usertbl" ,$con);
if(isset($_SESSION["session_username"])) {
        if(isset($_POST) && isset($_POST['id']) ){
    
    $ban_id=$_POST['id'];
    $type=$_POST['type']=='ban' ? 1 : 0;
    $sql = mysql_query("UPDATE usertbl SET state='$type' WHERE id='$ban_id'",$con) ;
    }
    $res=mysql_fetch_assoc($sql);
     echo "<table > ";
  echo "<tr><th>id</th><th>full_name</th><th>e-mail</th><th>username</th><th>state</th></tr>";
    echoUsers($sql,1);
    echoUsers($sql,1);
      echo "</table>";
    } else {
    header("location:login.php");
    }
 
 
 
function echoUsers($sql,$status){
        $sql = mysql_query("SELECT * FROM usertbl WHERE username='$status'",$con );
 
 while($myrow=mysql_fetch_assoc($sql)){
     if($myrow['username']!=$_SESSION['session_username']){
        echo '<from action="OpenDb.php" method="post">';
    echo '<input type="hidden" name="type" value="'.($myrow['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban' ).'">';
    echo '<tr'.($myrow['state']==0 ? '': ' style="background: #fa7177"').'>';
    echo '<td>'.$myrow['id'].'&nbsp;</td>';
    echo '<td>'.$myrow['full_name'].'&nbsp;</td>';
    echo '<td>'.$myrow['email'].'&nbsp;</td>';
    echo '<td>'.$myrow['username'].'&nbsp;</td>';
    
        /*echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить изменения\" /></td>\n";*/
    echo '<td><button name="id" value="'.$myrow['id'].'">'.($myrow['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban' ).'</td>';
    
    echo '</tr></form>'; 
     }
 }
     
}
?>
 
<form action="" method="POST" target="_self">
<input type="submit" name="ss" value="Out" class="button" />
</form>
вот сюда конкретно он ругается, на переменную $con
PHP
1
2
3
4
function echoUsers($sql,$status){
        $sql = mysql_query("SELECT * FROM usertbl WHERE username='$status'",$con );
 
 while($myrow=mysql_fetch_assoc($sql)){
Миниатюры
Изменение состояния кнопки и поля в бд по клику   Изменение состояния кнопки и поля в бд по клику  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2016, 21:04
Ответы с готовыми решениями:

Изменение состояния кнопки
В одной из таблиц есть поле true/false необходимо чтобы при значении true - были доступны одни кнопки, при значении false - другие. ...

BitBtn - изменение состояния кнопки при нажатии
подскажите. как сделать, что б при нажатии BitBtn кнопка меняла вид на нажатую, при повторном нажатии кнопка возвращалась в своё...

QML - изменение содержимого формы по клику кнопки и виджета
Доброго дня всем!!! стоит задача - на qml написать прогу, где есть возможность изменения содержимого формы на другое содержимое по клику по...

14
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.10.2016, 21:33
У функций своя область видимости. Вы не передали $con в функцию, поэтому внутри функции она не существует.

Цитата Сообщение от DeadDance Посмотреть сообщение
времени очень мало
Тогда просто не передавайте 2-ой параметр в mysql_query, он же необязательный. Нужен только если вы работаете с несколькими БД.
1
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 21:56  [ТС]
ага, а вот почему у меня тогда ничего не выводится из бд ?
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.10.2016, 22:09
DeadDance, без понятия, у вас вообще жесть в коде, сложно в этом во всём разобраться. Зачем-то в echoUsers передаёте $sql, которую тут же перезаписываете...

К тому же вывод может не выполняться из-за неработающего условия:
Цитата Сообщение от DeadDance Посмотреть сообщение
PHP
1
if($myrow['username']!=$_SESSION['session_username']){
И кстати, нельзя пихать <form> внутрь <table>.
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 22:54  [ТС]
а как тогда сделать перезапись по нажатию на кнопку ?) я уже два дня туплю.... и да код в итоге стал похож на что то очень страшное (

Добавлено через 41 минуту
есть еще такой вариант.. но как тут сделать перезапись значения нажатой кнопки ?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
include("/connection.php");
mysql_select_db("userlistdb" ,$con);   //site - имя БД
$sql = mysql_query("SELECT * FROM usertbl" ,$con); //Выбирает поля name и text из таблицы links
 
?>
 
</div>  
<div class="main">  
<?php
 
 
    
  if($sql)
{
  // Определяем таблицу и заголовок
  echo "<table > ";
  echo "<tr><th>id</th><th>full_name</th><th>e-mail</th><th>username</th><th>state</th></tr>";
  // Так как запрос возвращает несколько строк, применяем цикл
  while($myrow = mysql_fetch_array ($sql))
  {
    echo '<from action="OpenDb.php" method="post">';
    echo '<input type="hidden" name="type" value="'.($myrow['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban' ).'">';
    echo '<tr'.($myrow['state']==0 ? '': ' style="background: #fa7177"').'>';
    echo '<td>'.$myrow['id'].'&nbsp;</td>';
    echo '<td>'.$myrow['full_name'].'&nbsp;</td>';
    echo '<td>'.$myrow['email'].'&nbsp;</td>';
    echo '<td>'.$myrow['username'].'&nbsp;</td>';
    
        /*echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить изменения\" /></td>\n";*/
    echo '<td><button name="id" value="'.$myrow['id'].'">'.($myrow['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban' ).'</td>';
    
    echo '</tr></form>';
  }
  echo "</table>";
 
}
else
{
 header("Location: "."OpenBD.php");
}
 
?>
<form action="" method="POST" target="_self">
<input type="submit" name="ss" value="Out" class="button" />
</form>
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.10.2016, 22:57
DeadDance, опишите исходную задачу, что в каком виде выводится и как должно редактироваться.
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 23:04  [ТС]
Значит у нас осуществляется вывод нащей бд на сайт. И на самом сайты мы должны иметь возможнть скажем так забанить или разбанить пользователя из списка бд..... сделать это желательно при нажатии на кнопку.... (я решил сделать так в таблице сделать поле state в котором записывать 0- разбанен или 1- забанен...) на скрине справа кнопки, при нажатии на катарые должен меняться статус кнопки с разбана на бан или на оборот.
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 23:05  [ТС]
скрин
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 23:12  [ТС]
так как бы обычно использую AJAX но, мало того что я его не знаю .. большее затруднее у меня вызывает то как пзять значение из нажатой кнопки и запихнуть его обратно в бд вместо старого значения? О_О как то так
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.10.2016, 08:26
Лучший ответ Сообщение было отмечено DeadDance как решение

Решение

DeadDance, как-то так. Код не проверял, могут быть ошибки, но главное понять смысл.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
    include("/connection.php");
    mysql_select_db("userlistdb" ,$con);   //site - имя БД
    $users = mysql_query("SELECT * FROM usertbl" ,$con); //Выбирает поля name и text из таблицы links
 
    // Блок
    if(isset($_POST['block']))
    {
        $id = (int) key($_POST['block']);
        mysql_query('UPDATE `usertbl` SET `state` = 0 WHERE `id` = ' . $id);
    }
 
    // Разблок
    if(isset($_POST['unblock']))
    {
        $id = (int) key($_POST['unblock']);
        mysql_query('UPDATE `usertbl` SET `state` = 1 WHERE `id` = ' . $id);
    }
?>
 
<div class="main">
    <form method="post">
        <table>
            <tr>
                <th>id</th>
                <th>full_name</th>
                <th>e-mail</th>
                <th>username</th>
                <th>state</th>
                <th></th>
            </tr>
            <? while($user = mysql_fetch_array($users)): ?>
            <tr>
                <td><?=$user['id']?>&nbsp;</td>
                <td><?=$user['full_name']?>&nbsp;</td>
                <td><?=$user['email']?>&nbsp;</td>
                <td><?=$user['username']?>&nbsp;</td>
                <td><?=$user['state'] == 1 ? '&nbspbun&nbsp&nbsp': 'unban'?></td>
                
                <? if($user['state'] == 1): ?>
                <td><input name="block[<?=$user['id']?>]" type="submit" value="Заблокировать" /></td>
                <? else: ?>
                <td><input name="unblock[<?=$user['id']?>]" type="submit" value="Разблокировать" /></td>
                <? endif; ?>
            </tr>
            <? endwhile; ?>
        </table>
    </form>
</div>
1
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
26.10.2016, 15:27  [ТС]
Спасибо огромное) ... а изначально я был очень близок.. но потом начал дурные варианты из гугля тянуть и в итоге в конец запутался.... посмотрел на ваш скрип у меня в голове все встало на свои места ...сейчас буду его внедрять !)

Добавлено через 30 минут
вернулся к самому началу (((( выскакивают нотисы, он не понимает этот кусок
PHP
1
2
3
4
5
 <td><?=$user['id']?>&nbsp;</td>
                <td><?=$user['full_name']?>&nbsp;</td>
                <td><?=$user['email']?>&nbsp;</td>
                <td><?=$user['username']?>&nbsp;</td>
                <td><?=$user['state'] == 1 ? '&nbspbun&nbsp&nbsp': 'unban'?></td>
не знает что такое id full_name и тд....
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
26.10.2016, 20:01
DeadDance, хм... скиньте полностью тексты всех ошибок.
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
26.10.2016, 22:52  [ТС]
Notice: Undefined variable: user in D:\xampp\htdocs\TaskOne\includes\OpenDb. php on line 34
Notice: Undefined variable: user in D:\xampp\htdocs\TaskOne\includes\OpenDb. php on line 35
Notice: Undefined variable: user in D:\xampp\htdocs\TaskOne\includes\OpenDb. php on line 36
Notice: Undefined variable: user in D:\xampp\htdocs\TaskOne\includes\OpenDb. php on line 37
Notice: Undefined variable: user in D:\xampp\htdocs\TaskOne\includes\OpenDb. php on line 38
я так понял он не понимает конструкцию <? ......?>
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
27.10.2016, 00:01  [ТС]
переписал конструкцию по другому
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 </div>
<div class="main">
    <form method="post">
    <?php
    include("/connection.php");
    mysql_select_db("userlistdb" ,$con);   //site - имя БД
    $users = mysql_query("SELECT * FROM usertbl" ,$con); //Выбирает поля name и text из таблицы links
 
    // Блок
    if(isset($_POST['block']))
    {
        echo "ggggg";
        $id =(int) key($_POST['unblock']);
        mysql_query('UPDATE `usertbl` SET `state` = 0 WHERE `id` = ' . $id);
    }
 
    // Разблок
    if(isset($_POST['unblock']))
    {
        $id = (int) key($_POST['unblock']);
        mysql_query('UPDATE `usertbl` SET `state` = 1 WHERE `id` = ' . $id);
    }
?>
        <table>
            <tr>
                <th>id</th>
                <th>full_name</th>
                <th>e-mail</th>
                <th>username</th>
                <th>state</th>
                <th></th>
            </tr>
            <tr>     
            <?php while($user=mysql_fetch_assoc($users)){
    
    echo '<td>'.$user['id'].'&nbsp;</td>';
    echo '<td>'.$user['full_name'].'&nbsp;</td>';
    echo '<td>'.$user['email'].'&nbsp;</td>';
    echo '<td>'.$user['username'].'&nbsp;</td>';
    echo '<td>'.($user['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban').'</td>';
    
                 if($user['state'] == 1){
                 echo'<td><input name="unblock" type="submit" value="'.$user['id'].'" /></td>';
                 } else {
                echo'<td><input name="unblock" type="submit" value="'.$user['id'].'">'.($user['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban' ).'</td>';
                 }
            echo'</tr>';
                     
            }?>
 
        </table>
    </form>
</div>
выбивает вот такие ошибки
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
0
1 / 1 / 0
Регистрация: 16.06.2013
Сообщений: 46
27.10.2016, 00:38  [ТС]
кароче разобрался ... снял ключи.... все заработало ... но не так как хотелось.. надо заюзать AJAX а то обновление происходит не сразу при 1ом клике а после 2ого ) вот более-менее рабочий код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    <?php
    include("/connection.php");
    mysql_select_db("userlistdb" ,$con);   //site - имя БД
    $users = mysql_query("SELECT * FROM usertbl" ,$con); //Выбирает поля name и text из таблицы links
 
    // Блок
    if(isset($_POST['block']))
    {
        
        $id =$_POST['block'];
        mysql_query('UPDATE `usertbl` SET `state` = 0 WHERE `id` = ' . $id);
        
    }
 
    // Разблок
    if(isset($_POST['unblock']))
    {
        $id = $_POST['unblock'];
        mysql_query('UPDATE `usertbl` SET `state` = 1 WHERE `id` = ' . $id);
        
    }
?>
 </div>
<div class="main">
    <form method="post">
 
        <table>
            <tr>             
                <th>full_name</th>
                <th>e-mail</th>
                <th>username</th>
                <th>state</th>
                <th>id</th>
                <th></th>
            </tr>
            <tr>     
            <?php while($user=mysql_fetch_assoc($users)){
    
    echo '<td>'.$user['full_name'].'&nbsp;</td>';
    echo '<td>'.$user['email'].'&nbsp;</td>';
    echo '<td>'.$user['username'].'&nbsp;</td>';
    echo '<td>'.($user['state']==1 ? '&nbspbun&nbsp&nbsp': 'unban').'</td>';
    
                 if($user['state'] == 1){
                 echo'<td><input name="block" type="submit" value="'.$user['id'].'" /></td>';
                 } else {
                echo'<td><input name="unblock" type="submit" value="'.$user['id'].'" /></td>';
                 }
            echo'</tr>';
                     
            }?>
 
        </table>
    </form>
</div>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2016, 00:38
Помогаю со студенческими работами здесь

Изменение таблицы в форме в зависимости от состояния поля со списком Access 2007
Доброго времени суток. Подскажите, как изменить содержимое получаемое формой из таблицы в зависимости от состояния поля со списком. ...

Запрет на изменение внутреннего состояния поля коллекции, доступное через свойство класса
Привет всем. Возник такой вопрос. Как мне запретить изменять внутреннее состояние коллекции, которая объявлена как поле readonly, и...

Добавление кнопки "Обзор" // Изменение свойств поля,изменение значения по 2му шелчку
Доброго времени суток! Есть форма для будущего заполнения пустой базы данных для учета производства в цифровой типографии (как пример)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru