Перенос определенной строки из одной таблицы в другую - MySQL
Формулировка задачи:
Доброго времени суток, я новичок в PHP, поэтому ожидаю, что полетит грязь с камнями. Но столкнулся с такой проблемой. У меня есть таблица в базе, куда вносятся данные с формы, располагаемой на сайте, далее эти данные выводятся сотруднику в таблицу (на его отдельной странице). Теперь сама проблема: есть второй сотрудник, которому, по выбору чекбокса из таблицы данных должна отправиться только та запись, напротив которой стоит галка. На данный момент я достиг того, что при активном чекбоксе идет копирование всех строк, а при деактивированном - не происходит отправки.
Вывод данных сотруднику №1
Листинг программы
- <?php
- mysql_connect("localhost", "root", "")
- or die("<p>Ошибка подключения к базе данных" . mysql_error() . "</p>");
- mysql_select_db ("amb_db")
- or die ("<p>Ошибка выбора базы данных" . mysql_error() . "</p>");
- $inser_sql = "INSERT INTO tehnolog_shirka (shirina, visota, kolvo, material, prokleika, luvers, laminat, trosovka, rezka, cvetoproba, srochno, dostavka, skleika)" .
- "SELECT shirina_sm, visota_sm, kolvo, materialtest, prokleika, lyvers, laminat, tros, rezka, cvetoproba, srochnost, dostavka, skleika from shirformat ORDER BY id DESC;";
- $ban_tkan = $_REQUEST['texnology'];
- if ($ban_tkan == 1) {
- echo 'Отправлено';
- mysql_query($inser_sql);
- }
- else {
- echo 'Вы не выбрали проект';
- }
- ?>
Листинг программы
- <?php
- // определяем начальные данные
- $db_host = 'localhost';
- $db_name = 'amb_db';
- $db_username = 'root';
- $db_table_to_show = 'shirformat';
- // соединяемся с сервером базы данных
- $connect_to_db = mysql_connect($db_host, $db_username, $db_password)
- or die("Could not connect: " . mysql_error());
- // подключаемся к базе данных
- mysql_select_db($db_name, $connect_to_db)
- or die("Could not select DB: " . mysql_error());
- // выбираем все значения из таблицы "shirformat"
- $qr_result = mysql_query("select * from " . $db_table_to_show)
- or die(mysql_error());
- //Выбираем материал из таблицы
- echo '<div id="tablenav">';
- // выводим на страницу сайта заголовки HTML-таблицы
- echo '<form action="test.php" method="post"><table>';
- echo '<thead>';
- echo '<tr>';
- echo '<th></th>';
- echo '<th colspan="4" class="borders"><h3 class="top">Данные о заказчике</h3></th>';
- echo '<th colspan="18"><h3 class="top">Параметры заказа</h3></th>';
- echo '</tr>';
- echo '<tr>';
- echo '<th><p>Дата</p></th>';
- echo '<th><p>ФИО клиента</p></th>';
- echo '<th><p>Компания</p></th>';
- echo '<th><p>Телефон</p></th>';
- echo '<th><p>E-mail</p></th>';
- echo '<th><p>Ширина</p></th>';
- echo '<th><p>Высота</p></th>';
- echo '<th><p>Количество</p></th>';
- echo '<th><p>Материал</p></th>';
- echo '<th><p>Проклейка</p></th>';
- echo '<th><p>Шаг люверсовки в см.</p></th>';
- echo '<th><p>Ламинация</p></th>';
- echo '<th><p>Тросовка</p></th>';
- echo '<th><p>Резка</p></th>';
- echo '<th><p>Цветопроба</p></th>';
- echo '<th><p>Срочная печать</p></th>';
- echo '<th><p>Доставка</p></th>';
- echo '<th><p>Склейка по ИЗО</p></th>';
- echo '<th><p>Интерьерная печать</p></th>';
- echo '<th><p>Псевдоинтерьерная печать</p></th>';
- echo '<th><p>Скидка</p></th>';
- echo '<th><p>Общая площадь</p></th>';
- echo '<th><p>Пожелания</p></th>';
- echo '<th>Утверждение</th>';
- echo '</tr>';
- echo '</thead>';
- echo '<tbody>';
- // выводим в HTML-таблицу все данные клиентов из таблицы MySQL
- while($data = mysql_fetch_array($qr_result)){
- echo '<tr>';
- echo '<td> ' . $data['date'] . '</td>';
- echo '<td>' . $data['fio'] . '</td>';
- echo '<td>' . $data['company'] . '</td>';
- echo '<td>' . $data['tel'] . '</td>';
- echo '<td>' . $data['email'] . '</td>';
- echo '<td>' . $data['shirina_sm'] . 'см</td>';
- echo '<td>' . $data['visota_sm'] . 'см</td>';
- echo '<td>' . $data['kolvo'] . 'шт</td>';
- echo '<td>' . $data['materialtest'] . '</td>';
- echo '<td>' . $data['prokleika'] . '</td>';
- echo '<td>' . $data['lyvers'] . '</td>';
- echo '<td>' . $data['laminat'] . '</td>';
- echo '<td>' . $data['tros'] . '</td>';
- echo '<td>' . $data['rezka'] . '</td>';
- echo '<td>' . $data['cvetoproba'] . '</td>';
- echo '<td>' . $data['srochnost'] . '</td>';
- echo '<td>' . $data['dostavka'] . '</td>';
- echo '<td>' . $data['skleika'] . '</td>';
- echo '<td>' . $data['interier'] . '</td>';
- echo '<td>' . $data['psevdointerier'] . '</td>';
- echo '<td>' . $data['skidka'] . '</td>';
- echo '<td>' . $data['ob_ploshad'] . 'кв.м</td>';
- echo '<td>' . $data['pojelaniya'] . '</td>';
- echo '<td><input class="checkbox" name="texnology" type="checkbox" value="1" id="texnology"> </td>';
- echo '</tr>';
- }
- echo '</tbody>';
- echo '</table><br /><input type="submit"></form>';
- echo '</div>';
- // закрываем соединение с сервером базы данных
- mysql_close($connect_to_db);
- ?><code lang="php" />
Решение задачи: «Перенос определенной строки из одной таблицы в другую»
textual
Листинг программы
- $ban_tkan = $_REQUEST['texnology'];
- if ($ban_tkan == 1) {
- echo 'Отправлено';
- $inser_sql = "INSERT INTO tehnolog_shirka (shirina, visota, kolvo, material, prokleika, luvers, laminat, trosovka, rezka, cvetoproba, srochno, dostavka, skleika)" .
- "SELECT shirina_sm, visota_sm, kolvo, materialtest, prokleika, lyvers, laminat, tros, rezka, cvetoproba, srochnost, dostavka, skleika from shirformat ORDER BY id DESC;";
- mysql_query($inser_sql);
- }
- else {
- echo 'Вы не выбрали проект';
- }
- ?>
Объяснение кода листинга программы
- В первую очередь, предположительно, в переменную
$ban_tkan
записывается значение, которое было получено через метод$_REQUEST['texnology']
. - Затем выполняется проверка: если
$ban_tkan
равно 1, то выполняется блок кода, в противном случае - другой блок. - В блоке, который выполняется при условии
$ban_tkan == 1
, выводится сообщение 'Отправлено'. - После этого формируется SQL-запрос для вставки данных в таблицу
tehnolog_shirka
. В запросе используется функцияINSERT INTO ... SELECT
, которая позволяет перенести данные из одной таблицы в другую. - В запросе указываются поля таблицы
tehnolog_shirka
, в которые будут вставлены данные, и таблицаshirformat
, из которой данные будут взяты. - Запрос сортируется по полю
id
в порядке убывания. - Выполняется запрос с помощью функции
mysql_query($inser_sql)
. - В блоке, который выполняется при условии
$ban_tkan != 1
, выводится сообщение 'Вы не выбрали проект'. - В конце кода нет никаких действий или операций, поэтому список можно считать завершенным.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д