Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
#1

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

25.10.2016, 21:04. Просмотров 350. Ответов 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)){

http://www.cyberforum.ru/php-database/thread1128332.html
0
Миниатюры
Изменение состояния кнопки и поля в бд по клику   Изменение состояния кнопки и поля в бд по клику  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2016, 21:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Изменение состояния кнопки и поля в бд по клику (PHP БД):

Изменение счетчика по клику внутри цикла
Здравствуйте. В корзине товары выводятся циклом, внутри каждой записи о...

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

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

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

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

14
Jodah
Эксперт PHP
2704 / 2376 / 1013
Регистрация: 01.08.2012
Сообщений: 8,405
25.10.2016, 21:33 #2
У функций своя область видимости. Вы не передали $con в функцию, поэтому внутри функции она не существует.

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

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

Добавлено через 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
Jodah
Эксперт PHP
2704 / 2376 / 1013
Регистрация: 01.08.2012
Сообщений: 8,405
25.10.2016, 22:57 #6
DeadDance, опишите исходную задачу, что в каком виде выводится и как должно редактироваться.
0
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 23:04  [ТС] #7
Значит у нас осуществляется вывод нащей бд на сайт. И на самом сайты мы должны иметь возможнть скажем так забанить или разбанить пользователя из списка бд..... сделать это желательно при нажатии на кнопку.... (я решил сделать так в таблице сделать поле state в котором записывать 0- разбанен или 1- забанен...) на скрине справа кнопки, при нажатии на катарые должен меняться статус кнопки с разбана на бан или на оборот.
0
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 23:05  [ТС] #8
скрин
0
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
25.10.2016, 23:12  [ТС] #9
так как бы обычно использую AJAX но, мало того что я его не знаю .. большее затруднее у меня вызывает то как пзять значение из нажатой кнопки и запихнуть его обратно в бд вместо старого значения? О_О как то так
0
Jodah
Эксперт PHP
2704 / 2376 / 1013
Регистрация: 01.08.2012
Сообщений: 8,405
26.10.2016, 08:26 #10
Лучший ответ Сообщение было отмечено DeadDance как решение

Решение

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

PHPHTML
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
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
26.10.2016, 15:27  [ТС] #11
Спасибо огромное) ... а изначально я был очень близок.. но потом начал дурные варианты из гугля тянуть и в итоге в конец запутался.... посмотрел на ваш скрип у меня в голове все встало на свои места ...сейчас буду его внедрять !)

Добавлено через 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
Jodah
Эксперт PHP
2704 / 2376 / 1013
Регистрация: 01.08.2012
Сообщений: 8,405
26.10.2016, 20:01 #12
DeadDance, хм... скиньте полностью тексты всех ошибок.
0
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
26.10.2016, 22:52  [ТС] #13
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
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
27.10.2016, 00:01  [ТС] #14
переписал конструкцию по другому
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
Миниатюры
Изменение состояния кнопки и поля в бд по клику  
DeadDance
1 / 1 / 1
Регистрация: 16.06.2013
Сообщений: 46
27.10.2016, 00:38  [ТС] #15
кароче разобрался ... снял ключи.... все заработало ... но не так как хотелось.. надо заюзать 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
27.10.2016, 00:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2016, 00:38
Привет! Вот еще темы с решениями:

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

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

Переключение состояния кнопки
помогите сделать: 3. Три состояния кнопки (3 рис на кнопку), т.е. переключение...

Изменение состояния компонентов
я начинающий,подскажите пожалуйста как написать.. нужно сделать так,чтобы...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru