Перенос определенной строки из одной таблицы в другую - MySQL

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, я новичок в PHP, поэтому ожидаю, что полетит грязь с камнями. Но столкнулся с такой проблемой. У меня есть таблица в базе, куда вносятся данные с формы, располагаемой на сайте, далее эти данные выводятся сотруднику в таблицу (на его отдельной странице). Теперь сама проблема: есть второй сотрудник, которому, по выбору чекбокса из таблицы данных должна отправиться только та запись, напротив которой стоит галка. На данный момент я достиг того, что при активном чекбоксе идет копирование всех строк, а при деактивированном - не происходит отправки.
<?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 'Вы не выбрали проект';
     
     }
?>
Вывод данных сотруднику №1
<?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 'Вы не выбрали проект';
     
     }
?>

Объяснение кода листинга программы

  1. В первую очередь, предположительно, в переменную $ban_tkan записывается значение, которое было получено через метод $_REQUEST['texnology'].
  2. Затем выполняется проверка: если $ban_tkan равно 1, то выполняется блок кода, в противном случае - другой блок.
  3. В блоке, который выполняется при условии $ban_tkan == 1, выводится сообщение 'Отправлено'.
  4. После этого формируется SQL-запрос для вставки данных в таблицу tehnolog_shirka. В запросе используется функция INSERT INTO ... SELECT, которая позволяет перенести данные из одной таблицы в другую.
  5. В запросе указываются поля таблицы tehnolog_shirka, в которые будут вставлены данные, и таблица shirformat, из которой данные будут взяты.
  6. Запрос сортируется по полю id в порядке убывания.
  7. Выполняется запрос с помощью функции mysql_query($inser_sql).
  8. В блоке, который выполняется при условии $ban_tkan != 1, выводится сообщение 'Вы не выбрали проект'.
  9. В конце кода нет никаких действий или операций, поэтому список можно считать завершенным.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы