Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1

Выборочная запись в БД

27.07.2015, 12:17. Показов 1108. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Я создал БД, связался с ней, получил данные, все хорошо работает, но есть маленькая проблема - при изменении данных в столбце: что заношу в последнюю строку столбца - это значение принимает весь столбец.
По задумке я хотел, в одном из полей "text" поменять число в одной строке и сохранить это в БД.
Вообщем, кто знает что я делаю не так?:
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 if (!empty($_POST))
{
    mysql_connect('localhost','root','');/*тут подключаюсь к БД и получаю данные*/
    mysql_select_db('school');
    $new_PoSpisku=$_POST['NPoSpisku'];
    mysql_query("UPDATE analiz_KR SET PoSpisku='$new_PoSpisku'");
    
}
?>
 
<html>
    <head>
    <title>Me_BD</title>
  <meta charset="cp1251" />
 </head>
  <body>
<?php
/*Проверка на подключение БД*/
$connection=mysql_connect('localhost','root','');
$db=mysql_select_db('school');
mysql_set_charset("cp1251");
if(!$connection||!$db)
{
    exit(mysql_error());
}
/**
else
{
    echo"Соединение прошло успешно!";
}
*/
    $result=mysql_query("SELECT*FROM analiz_KR");
    
    mysql_close();
        while($row=mysql_fetch_array($result))
    {?>
<table border=1>
<tr>
<td>
<?php echo $row['NumKl']?>
<td>
<?php echo $row['LitKl']?>
<td>
 
<form method="post">
 <input type="text" name="NPoSpisku" value="<?php echo $row['PoSpisku']?>" size="2"/>
  <input type="submit" value="Сохранить"/>
 
<tr>
    <?php 
    }?>
</table>
 
 </body>
</html>
Во вложении как выглядит визуально.
Изображения
 
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2015, 12:17
Ответы с готовыми решениями:

Выборочная запись переменных из объектов в MFC
1)Есть функция UpdateData(); Но она обновляет все переменные,а как мне записать из переменной в объект и наоборот только к 1 объекту и к 1...

Выборочная сортировка - C++
Помогите решить задания.У меня не получается сортировать,рандомно сортирует. a) Сгенерировать одномерный массив из 50 элементов целого...

Выборочная дисперсия
Вечер добрый! Задача следующая: А теперь вопросы: Как хранить и передавать не целые числа? Как возводить в квадрат?

13
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2015, 12:20
Надо еще указать, в какой именно строке вы хотите поменять значение - с помощью условия WHERE.

Добавлено через 45 секунд
Основы SQL
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
27.07.2015, 12:38  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Надо еще указать, в какой именно строке вы хотите поменять значение
А если у меня будет 5 строк? Прописывать изменения для каждой строки? Или есть что-то похитрее?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2015, 12:40
Не совсем понятен вопрос. Хотите сделать возможность редактирования всех строк из таблицы и автоматизировать это?
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
27.07.2015, 12:48  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Хотите сделать возможность редактирования всех строк из таблицы и автоматизировать это
Вот немного отредактировал для визуального понимания и новое вложение сделал. Хочу сохранять изменения просто, например в одной из строк поменять количество человек по списку.. Или можно сделать сохранение всех сделанных изменений(например все сделанные изменения значения в поле по списку)..
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
57
58
59
60
61
62
63
64
<?php if (!empty($_POST))
{
    mysql_connect('localhost','root','');
    mysql_select_db('school');
    $new_PoSpisku=$_POST['NPoSpisku'];
    mysql_query("UPDATE analiz_KR SET PoSpisku='$new_PoSpisku'");
    
}
?>
 
<html>
    <head>
    <title>Login</title>
  <meta charset="cp1251" />
 </head>
  <body>
<?php
/*Проверка на подключение БД*/
$connection=mysql_connect('localhost','root','');
$db=mysql_select_db('school');
mysql_set_charset("cp1251");
if(!$connection||!$db)
{
    exit(mysql_error());
}
/**
else
{
    echo"Соединение прошло успешно!";
}
*/?>
<table border=1>
<tr>
<td width=10px>Номер класса
<td width=10px>Литера класса
<td width=10px>По списку
<td width=10px>Выполнявших работу
<tr>
<?php
    $result=mysql_query("SELECT*FROM analiz_KR");
    
    mysql_close();
        while($row=mysql_fetch_array($result))
    {?>
 
 
<tr>
<td>
<?php echo $row['NumKl']?>
<td>
<?php echo $row['LitKl']?>
<td>
 
<form method="post">
 <input type="text" name="NPoSpisku" value="<?php echo $row['PoSpisku']?>" size="2"/>
  <input type="submit" value="Сохранить"/>
 
<tr>
    <?php 
    }?>
</table>
 
 </body>
</html>
Миниатюры
Выборочная запись в БД  
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
27.07.2015, 16:13  [ТС]
Цитата Сообщение от MrAleksej Посмотреть сообщение
автоматизировать это
Да, пытаюсь автоматизировать некую БД.
Может, кто знает, как проверить условия исправления( например я изменил данные в определенном поле -нажть сохранить и все сохранится..)
Миниатюры
Выборочная запись в БД  
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2015, 16:22
или редактировать каждую запись на отдельной странице (а на странице вывода списка оставить только ссылки на страницу редактирования), или использовать чекбоксы/радиокнопки для запоминания тех, которые нужно сохранять, или же сохранять все подряд, ориентируясь по id записи, которая находится, к примеру, в скрытом поле или в качестве индекса текущей записи.
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
28.07.2015, 00:54  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
или редактировать каждую запись на отдельной странице
Думаю лучше изменить те записи в БД, в которых произведены изменения. Как это сделать?(что использовать подкинте идею - я погуглю, не поленюсь, если что...)
Просто в данный момент он меняет весь столбец на значение последней записи столбца...
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php if (!empty($_POST))
{
    mysql_connect('localhost','root','');
    mysql_select_db('school');
    $new_PoSpisku=$_POST['NPoSpisku'];
    mysql_query("UPDATE analiz_KR SET PoSpisku='$new_PoSpisku'");
    $new_VipR=$_POST['NVipR'];
    mysql_query("UPDATE analiz_KR SET VipR='$new_VipR'");
}
?>
 
<html>
    <head>
    <title>BD_School</title>
  <meta charset="cp1251" />
 </head>
  <body>
<?php
/*Проверка на подключение БД*/
$connection=mysql_connect('localhost','root','');
$db=mysql_select_db('school');
mysql_set_charset("cp1251");
if(!$connection||!$db)
{
    exit(mysql_error());
}
/**
else
{
    echo"Соединение прошло успешно!";
}
*/?>
<table border=1>
<tr>
<td width=10px>Номер класса
<td width=10px>Литера класса
<td width=10px>По списку
<td width=10px>Выполнявших работу
<tr>
<?php
    $result=mysql_query("SELECT*FROM analiz_KR");
    
    mysql_close();
        while($row=mysql_fetch_array($result))
    {?>
 
 
<tr>
<td>
<?php echo $row['NumKl']?>
<td>
<?php echo $row['LitKl']?>
<td>
 
<form method="post">
 <input type="text" name="NPoSpisku" value="<?php echo $row['PoSpisku']?>" size="2"/>
 
 <td>
<form method="post">
 <input type="text" name="NVipR" value="<?php echo $row['VipR']?>" size="2"/>
 
 
<tr>
    <?php 
    }?>
</table>
 
  <input type="submit" value="Сохранить"/>
 </body>
</html>
Во вложении некотрые изменения в визуализации я сделал..
Изображения
 
0
5 / 4 / 4
Регистрация: 27.07.2015
Сообщений: 48
28.07.2015, 01:30
читайте документацию
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
28.07.2015, 10:25  [ТС]
Цитата Сообщение от ALZoom Посмотреть сообщение
читайте документацию
У меня также прописана команда UPDATE в коде. И он изменяет все поле в таблице на последнюю запись в полеюю Мне надо чтобы в БД запись производилась соответственно произведенным изменениям в таблице..
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
29.07.2015, 18:43  [ТС]
Попробовал реализовать через цикл - не идет:
PHP
1
2
3
4
5
6
7
$new_PoSpisku=$_POST['NPoSpisku'];
    for($i=0;$i<2;$i++){
    mysql_query("UPDATE analiz_KR SET PoSpisku='$new_PoSpisku' WHERE ID='$i'");
    $new_VipR=$_POST['NVipR'];
    mysql_query("UPDATE analiz_KR SET VipR='$new_VipR' WHERE ID='$i'");
    
    }
Еще вот что интересно - если делать без цикла и ставить значение ID=2 - то будет сохранять 2ую позицую, а если ставить id=1 то, воообще не сохраняет..

Добавлено через 6 минут
Может кто подскажет, почему при id=1 не сохраняет, я бы тогда прописал эти 2 условия не поленился и работало б тогда все...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
03.08.2015, 13:33
Когда-то писал "полуавтоматический" обработчик, посмотрите, может, и вам он подойдет?

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
 
header('Content-type: text/html; charset=utf-8');
 
$table = 'analiz_KR'; //имя таблицы для изменения
 
try
{
    //подключение к БД
    $db = new PDO('mysql:host=HOST;dbname=DBNAME', 'USER', 'PASS', array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "UTF8"',
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //вывод всех ошибок PDO
    ));
    //смотрим количество записей в таблице
    $res = $db->query('SELECT COUNT(1) FROM `' . $table . '`');
    $row = $res->fetch(PDO::FETCH_NUM);
 
    if(empty($row[0]))
        echo '<h3>Записей в данной таблице (`' . $table . '`) не найдено</h3>';
    else
    {
        //Смотрим поля таблицы
        $res = $db->query('SHOW COLUMNS FROM `' . $table . '`');
        //типы полей и соответствующие функции, которыми надо обойти значения
        $types = array('int' => 'intval', 'char' => 'strval', 'decimal' => 'floatval');
 
        $data_types = array();
        //смотрим типы полей (если неизвестные нам, т.е., неуказанные выше, то пропускаем)
        while($obj = $res->fetch(PDO::FETCH_NUM))
        {
            if(preg_match('~.*?(' . join('|', array_keys($types)) . ').*?~i', $obj[1], $matches))
                $data_types[$obj[0]] = $matches[1];
        }
        //если данные формы отправили, и это массив
        if(!empty($_POST[$table]) && is_array($_POST[$table]))
        {
            //то пробегаемся по полученным данным и "фильтруем" (слегка)
            foreach($_POST[$table] as $arr)
            {
                array_walk($arr, function(&$value, $key) use ($data_types, $types) {
                    isset($data_types[$key]) && ($value = $types[$data_types[$key]](str_replace(',', '.', $value)));
                });
                $primary_key = array(current(array_keys($arr)), array_shift($arr));
                //Формируем текст запроса
                $sql = 'UPDATE `' . $table . '` SET ';
                foreach($arr as $field => $value)
                    $sql .= '`' . $field . '` = ?, ';
                $sql = rtrim($sql, ', ') . ' WHERE `' . $primary_key[0] . '` = ?';
                $arr = array_values($arr);
                array_push($arr, $primary_key[1]);
                //Подготавливаем запрос к выполнению
                $res = $db->prepare($sql);
                //Выполняем запрос с подстановкой соответствующих параметров
                echo $res->execute($arr) ? 'Запись успешно изменена (id = ' . $primary_key[1] . ')' : 'Произошла ошибка при изменении записи (id = ' . $primary_key[1] . ')';
                echo '<br>';
            }
        }
 
        //Выводим информацию из таблицы для редактирования в форму
        $res = $db->query('SELECT * FROM `' . $table . '`');
        echo '<h3>Edit ' . $table . '</h3>';
        echo '<form method="post">';
 
        while($obj = $res->fetch(PDO::FETCH_OBJ))
        {
            $first = true;
            foreach($obj as $field => $value)
            {
                if($first)
                {
                    $first = false;
                    $id = (int) $value;
                    echo '<input type="hidden" name="', $table, '[', $id, '][', $field, ']" value="', $id, '">';
                }
                else
                    echo ucfirst(str_replace('_', ' ', $field)), ': <input type="text" name="', $table, '[', $id, '][', $field, ']" value="', $value, '"><br>';
            }
            echo '<hr>';
        }
        echo '<input type="submit" value="Save"></form>';
 
    }
 
}
catch(PDOException $e) {
    echo $e->getMessage();
}
1
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
11.08.2015, 20:05  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Когда-то писал "полуавтоматический" обработчик,
Применил, начало работать, но как-то там все сложно. Сейчас сижу разбираюсь...Подскажите какую мне литературу почитать, чтобы разобраться получше.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.08.2015, 20:11
работа с PDO, регулярные выражения и функции для работы со строками и массивами (все не надо, только те, которые используются в коде).. Все остальное чистый синтаксис, можете пошагово продебажить код с помощью var_dump, например, чтобы понять, что получается в результате той или иной части кода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2015, 20:11
Помогаю со студенческими работами здесь

Выборочная сортировка
Помогите решить задания.У меня не получается сортировать,рандомно сортирует. a) Сгенерировать одномерный массив из 50 элементов целого...

Выборочная компиляция
У меня есть некоторая библиотека классов. Которая используется в двух проектах. Как я могу сделать так, чтобы для одного из этих...

Выборочная сортировка
При выборочной сортировке происходит поиск наименьшего элемента в массиве. Когда наименьший элемент найден, его меняют местами с первым...

Выборочная медиана
Люди добрые, помогите пожалуйста решить задачу... Пусть выборка х1...xn сделана из равномерного на отрезке распределения. ...

Выборочная индексация
Поддомены и главная индексируются, а вот страницы категорий на главном домене никак не хотят переидексироваться. Примечание: на главной...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru