Перенос определенной строки из одной таблицы в другую - 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
, выводится сообщение 'Вы не выбрали проект'. - В конце кода нет никаких действий или операций, поэтому список можно считать завершенным.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д