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

Изменить информацию в бд

06.04.2013, 21:13. Показов 1339. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Вот такая задача: в бд есть записи, в строке rent может быть только Yes или No. Вывожу все это на стренице, но поле rent в виде чекбокса.
Нужно, чтобы при нажатии на чекбокс в базе данных Yes на No менялось и наоборот.
Как это можно сделать?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
...
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link);
$query = mysql_query("SELECT *  FROM  `ps_map`");
 
if($query == false) { die("error");}
 
echo "<table border='1'><tr><th>id</th><th>Name</th><th>Rent</th></tr>";
while($row = mysql_fetch_array($query))
    {  echo "<tr>
                <td>{$row['0']}</td>
                <td>{$row['1']}</td>
                <td><input id='ch' name='chyes' type='checkbox'
                   value='Oplata'";
                   if($row[2] == 'Yes'){
                   echo"checked='checked'>{$row['2']}";}
                   if($row[2] == 'No'){echo">
                   {$row['2']}</td>
                </tr>";}
};
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2013, 21:13
Ответы с готовыми решениями:

Изменить информацию о версии системы
Может кто подскажет, как обмануть инсталлятор, что бы он считал домашнюю версию профессиональной?

Не может изменить информацию header
Ребят, в общем такая ситуация. Есть некий код пхп, который выполняет авторизацию. Вне html он работает, но когда я его вставляю в...

Как изменить в BIOS-е информацию
Доброго времени суток. Такой вопрос: - Как изменить информацию в биосе про железо ноутбука и т.д.? - BIOS InsydeH20 version:...

9
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
06.04.2013, 22:11
аякс событите на помечание вешать
0
1 / 1 / 0
Регистрация: 21.05.2012
Сообщений: 17
06.04.2013, 22:58
Ну если я правильно понял суть вопроса то примерно так

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
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input type="checkbox" name="box" value="yes" />
<input type="submit" value="OK" />
</form>
 
 
<?php
 
mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link);
$query = mysql_query("SELECT *  FROM  `ps_map`");
 
if($query == false) { die("error");}
 
if($_POST['box']=="yes"){
    $sql="UPDATE `$dbname`.`ps_map` SET `$pole` = 'yes' WHERE `ps_map`.`id` =1 LIMIT 1 ;";
    mysql_query($sql);
    exit;
}
 
if(!$_POST['box']=="yes"){
    $sql="UPDATE `$dbname`.`ps_map` SET `$pole` = 'no' WHERE `ps_map`.`id` =1 LIMIT 1 ;";
    mysql_query($sql);
    exit;
}
 
 
echo "<table border='1'><tr><th>id</th><th>Name</th><th>Rent</th></tr>";
while($row = mysql_fetch_array($query))
    {  echo "<tr>
                <td>{$row['0']}</td>
                <td>{$row['1']}</td>
                <td><input id='ch' name='chyes' type='checkbox'
                   value='Oplata'";
                   if($row[2] == 'Yes'){
                   echo"checked='checked'>{$row['2']}";}
                   if($row[2] == 'No'){echo">
                   {$row['2']}</td>
                </tr>";}
};
 
?>
1
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 90
07.04.2013, 14:22  [ТС]
НЕ получается.
А нельзя как-то так?
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
<html><head>  <title></title>    <meta http-equiv="Content-type" content = "text/html; charset=utf-8">
</head><body>
<?php
$dbhost = "localhost"; // Хост
$dbuser = "a"; // Имя пользователя
$dbpassword = "q"; // Пароль
$dbname = "is";
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link);
$query = mysql_query("SELECT *  FROM  `ps_map`");
if($query == false) { die("error");}
echo "<table border='1'><tr><th>id</th><th>Name</th><th>Rent</th></tr>";
while($row = mysql_fetch_array($query))
    {  echo "<tr>
                <td>{$row['0']}</td>
                <td>{$row['1']}</td>
                <td>
              <input id='ch' name='box' type='checkbox'
                   value='Oplata'";
                   if($row[2] == 'Yes'){
                   echo"checked='checked'>{$row['2']}";}
                   if($row[2] == 'No')
                        {echo" onclick =";  
         //проверять при нажатии на чекбокс
                                        if($row[2] == 'Yes'){                                                
         //если да, то исправляем на нет
                                        $sql="UPDATE `$dbname`.`ps_map` SET `Rent` = 'No' WHERE `ps_map`.`id` ="echo '{$row["2"]}';" LIMIT 1 ;";
                                        mysql_query($sql);
                                        exit;}
                                        if ($row[2] == 'No') { 
         //если в базе данных написано нет, то меняем на да.
                                        $sql="UPDATE `$dbname`.`ps_map` SET `Rent` = 'Yes' WHERE `ps_map`.`id` ="echo '{$row["2"]}';" LIMIT 1 ;"; 
         //причем при том id, которые текущий (id строки)
                                        mysql_query($sql);
                                        exit;}
                        echo ">
                        </form>
                   {$row['2']}</td>
                </tr>";}
};
 
?>
</body></html>
Только мое тоже не работает =).
Прикрепила фотки того, как это выглядит.
Изображения
  
0
1 / 1 / 0
Регистрация: 21.05.2012
Сообщений: 17
07.04.2013, 15:05
Никак не могу полностью понять твоих конечных целей, но по моему это выглядит так
подставляй свои значения

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
<?php
$host="localhost"; $user="root"; $pass=""; $baza="baza";
 
function cont ($host,$user,$pass,$baza){
    mysql_connect($host,$user,$pass) or die(mysql_error());
    mysql_select_db($baza) or die(mysql_error());
    mysql_query("SET NAMES 'cp1251'") or die(mysql_error());
}
cont($host,$user,$pass,$baza);
 
$sql="SELECT * FROM rent";
$query=mysql_query($sql);
 
$vivod=mysql_fetch_assoc($query);
 
if($_POST['box']=='yes'){
    $zap="UPDATE `jeep`.`rent` SET `Rent` = 'No' WHERE `rent`.`id` =0 LIMIT 1 ;";
    mysql_query($zap);
    }
else{
    $zap="UPDATE `jeep`.`rent` SET `Rent` = 'Yes' WHERE `rent`.`id` =0 LIMIT 1 ;";
    mysql_query($zap);
    }
?>
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="admin" />
 
    <title>Неназванный 13</title>
</head>
 
<body>
<form action="<?=$SERVER['PHP_SELF']?>" method="POST">
<table border="1" align="center" width=300 >
<tr><th>id</th><th>Name</th><th>Rent</th></tr>
<tr><td><?=$vivod["id"]?></td><td><?=$vivod["Name"]?></td><td><input type="checkbox" name="box" value="yes">
<?=$vivod["Rent"]?>
</td></tr>
</table>
 
 
<input type="submit" value="ok">
</form>
 
<?
mysql_close();
?>
</body>
</html>
0
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 90
07.04.2013, 17:52  [ТС]
Цитата Сообщение от jeep456 Посмотреть сообщение
Никак не могу полностью понять твоих конечных целей,
по целям все просто: есть база данных, которая выводится в виде таблицы.
в таблице есть поле rent (оно имеет только два значения: либо yes, либо no), которая выводится в виде чекбокса.
если я меняю значения rent в таблице, то это должно меняться и в базе (т.е. был чекбокс с галочкой у элемента с id=1, в базе данных значит написано, что rent-yes у id=1. Я снимаю галочку из чексбокса и в базе у id=1 поле rent с yes на no меняется).
0
1 / 1 / 0
Регистрация: 21.05.2012
Сообщений: 17
07.04.2013, 18:03
Цитата Сообщение от AsVolt Посмотреть сообщение
по целям все просто: есть база данных, которая выводится в виде таблицы.
в таблице есть поле rent (оно имеет только два значения: либо yes, либо no), которая выводится в виде чекбокса.
если я меняю значения rent в таблице, то это должно меняться и в базе (т.е. был чекбокс с галочкой у элемента с id=1, в базе данных значит написано, что rent-yes у id=1. Я снимаю галочку из чексбокса и в базе у id=1 поле rent с yes на no меняется).
Ну тогда в таком случае php не подходит, тут нужен javascript, я же написал код вроде так как ты хочешь
0
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 90
07.04.2013, 18:47  [ТС]
ВЫ написали код, но он даже весь список мне не выводит, как бы я его не крутила.
А почему у меня значения в базе не меняются, если я так пишу?
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
<!DOCTYPE HTML><html><head>   <meta http-equiv="Content-type" content = "text/html; charset=utf-8">    <title>Spisok</title></head><body>
<?php
$dbhost = "localhost";$dbuser = "a";$dbpassword = "q";$dbname = "is";
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link);
$query = mysql_query("SELECT *  FROM  `ps_map`");
if($query == false) { die("error");}
echo "<table border='1' align='center' width=300><tr><th>id</th><th>Name</th><th>Rent</th></tr>";
while($row = mysql_fetch_array($query))
    {  echo "<tr>
                <td>{$row['0']}</td>
                <td>{$row['1']}</td>
                <td> <input id='ch' name='box' type='checkbox'
                   value='Oplata'";
                   if($row[2] == 'Yes'){
                   echo"checked='checked' onclick ='";
                                        $sql="UPDATE ps_map SET Rent = 'No' WHERE id='".$_POST['id']."', Name='".$_POST['Name']."' LIMIT 1 ;";
              echo "'>";}
 
                   if($row[2] == 'No') {
                        echo "onclick ='";
                                        $sql="UPDATE ps_map SET  Rent = 'Yes' WHERE id='".$_POST['id']."',  Name='".$_POST['Name']."' LIMIT 1 ;";
              echo "'>";}
                 echo"{$row['2']}</td>
                </tr>";
 }
?>
</body>
</html>
Пишу же, что если в базе написано yes, то ставится галочка в чекбоксе, а когда щелкаю на галочку, то в базе значение должно поменяться на no, но не меняется =(.
0
65 / 65 / 18
Регистрация: 10.03.2013
Сообщений: 188
08.04.2013, 02:05
Может
PHP
1
while($row = mysql_fetch_array($query, MYSQL_NUM))
И не $row['0'] а $row[0]
0
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 90
08.04.2013, 13:27  [ТС]
Цитата Сообщение от Sima175 Посмотреть сообщение
Может
PHP
1
while($row = mysql_fetch_array($query, MYSQL_NUM))
И не $row['0'] а $row[0]
нет, не в этом дело. С row всё нормально выводится. =(

Добавлено через 27 минут
Напишу еще раз задание,чтобы все в одном месте было, потому что я не могу понять что у меня не так.

Есть таблица в базе данных, в ней только три поля: id, Name, Rent. Поле Rent принимает только два значения: Yes/No.
Это таблица выводится на странице. Поле Rent выводится как cheсkbox: если в бд значение "yes", то checked='checked', если в бд "No" - галочка не ставится.
Не могу реализовать следующее: когда в таблице, которая выводится на странице, я снимаю галочку с чекбокса, если она там стоит, то в базе данных в при соответствующем id менялось значение поля Rent на No. И, естаственно, если в пустом чекбоксе (раз пусто, значит в бд rent=No) ставлю галочку, то Rent принимает значение Yes.

Код:
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
<!DOCTYPE HTML>
<html><head>   <meta http-equiv="Content-type" content = "text/html; charset=utf-8">    <title>Spisok</title></head><body>
<?php
$dbhost = "localhost";$dbuser = "a"; $dbpassword = "q";$dbname = "is";
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname, $link);
$query = mysql_query("SELECT *  FROM  `ps_map`");
if($query == false) { die("error");}
echo "<table border='1' align='center' width=300><tr><th>id</th><th>Name</th><th>Rent</th></tr>";
while($row = mysql_fetch_array($query))
    {  echo "<tr>
                <td>{$row['0']}</td>
                <td>{$row['1']}</td>
                <td> <input id='ch' name='box' type='checkbox'
                   value='Oplata'";
                   if($row[2] == 'Yes'){
                   echo"checked='checked' onclick ='";
                                        $sql="UPDATE ps_map SET Rent = 'No' WHERE id='".$_POST['id']."', Name='".$_POST['Name']."' LIMIT 1 ;"; //пишу запрос, но он не срабатывает =(
              echo "'>";}
 
                   if($row[2] == 'No') {
                        echo "onclick ='";
                                        $sql="UPDATE ps_map SET  Rent = 'Yes' WHERE id='".$_POST['id']."',  Name='".$_POST['Name']."' LIMIT 1 ;";
              echo "'>";}
                 echo"{$row['2']}</td>
                </tr>";
 }
?></body></html>
Изображения самой таблицы и базы данных есть в предыдущих сообщениях.
Помогите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2013, 13:27
Помогаю со студенческими работами здесь

Изменить информацию о внешнем файле
Всем привет. Подскажите как программно изменить название продукта и исходное имя внешнего файла который лежит в папке с программой. Просто...

Динамически изменить информацию о программе
Всем доброго времени суток. Друзья, здесь можно задать информацию о программе, а как её можно задать не ползая в настройки проекта,...

Требуется изменить информацию в footer
Добрый день, умные люди! Постараюсь объяснить свою проблему: есть сайт на Bitrix, требуется изменить информацию в footer. Но! в файле...

Изменить информацию в списке клиентов роутера
При подключении к роутеру, в списке его клиентов вижу себя в виде: Логин, МодельНоутбука. Как изменить логин то понятно... А вот...

Как программно изменить информацию об объеме памяти?
Имеется программа с привязкой к объему оперативной памяти. Запускаю ее в VMware. Как заставить ее думать, что у меня на виртуалке не 2 Гб ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru