За последние 24 часа нас посетили 20080 программистов и 1715 роботов. Сейчас ищут 1358 программистов ...

Нужно перенести данные с одной таблицы mysql в другую

Тема в разделе "PHP для новичков", создана пользователем vlad2020, 19 авг 2016.

  1. vlad2020

    vlad2020 Новичок

    С нами с:
    19 авг 2016
    Сообщения:
    2
    Симпатии:
    0
    Имеются две одинаковые таблицы mysql (tab1) и (tab2) в них две строки id и name. Выводятся они в форме через цыкл php - do/while, и еще присутствует кнопка <input>
    Нужно чтобы при нажатии на кнопку строка из одной таблицы перенеслась в другую и наоборот, но есть проблема.
    А теперь подробно:

    подключаюсь к базе
    PHP:
    1. require "../connect.php";
    2.  
    3. выбираю таблицу
    4. $result = mysql_query("SELECT * FROM tab1");
    5. $myrow = mysql_fetch_array($result);
    Через цикл вывожу все строки таблицы mysql в таблицу html
    PHP:
    1. do
    2. {
    3. printf ( " <tr><td>".$myrow['id']. "</td> <td> ".$myrow['name']." </td> <td>
    4. <form method='post' name='forma'>
    5. <fieldset>
    6. <input id='submit' type='submit' name='submit' value='перенести'><br/>
    7.  
    8. </fieldset>
    9. </form>
    10. </td></tr>"
    11.  
    12. );
    если кнопка нажата то передаем в файл-обработчик id с таблицы (?value="$myrow['id']")

    PHP:
    1. if (isset($_POST['submit']))
    2. {
    3.  
    4. echo "<HTML><HEAD>
    5. <META HTTP-EQUIV='Refresh' CONTENT='0; URL=form.php?value="$myrow['id']"'>
    6. </HEAD></HTML>";
    7.  
    8.  
    9. }
    10. }
    условие цыкла
    PHP:
    1. while ($myrow = mysql_fetch_array ($result));
    Файл обработчик выглядит так

    принимаем значение от value
    PHP:
    1. $q = $_GET['value'];
    переносим значение с таблицы 1 в таблицу 2
    PHP:
    1. $resultd = mysql_query("SELECT * FROM tab2");
    2. $myrowd = mysql_fetch_array($resultd);
    3. $past = "INSERT INTO `tab1` (`id`, `name`)
    4. SELECT `id`, `name`
    5. FROM `tab1`
    6. WHERE id='$q'";
    7. mysql_query( $past );
    и удаляем с первой таблицы
    PHP:
    1. $delete = "DELETE FROM `tab2` WHERE id='$q'";
    2. mysql_query( $delete );
    Проблема в том что когда я нажимаю на кнопку в файл обработчик должно передаваться id той строки на которую я нажал, а передается только один последний id и всё.

    Если кто то разобрался в том что я тут написал то помогите пожалуйста. Для наглядности кидаю картинку.

    Если вы знаете как по другому реализовать задуманное напишите свой вариант
     

    Вложения:

    #1 vlad2020, 19 авг 2016
    Последнее редактирование модератором: 19 авг 2016
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    do...while
    mysql_
    $q=$_GET['value'], идущая прямо в запрос к базе.

    Для начала - выбросьте курсы Попова и начните изучать пхп по нормальным современным учебникам.
    Во вторых - у вас на клиентской части какая-то ерунда написана.
    Код (Text):
    1. META HTTP-EQUIV='Refresh' CONTENT='0; URL=form.php?value="$myrow['id']"'>
    Это, как способ передачи данных из формы - просто жесть. Не надо так делать. Почитай про передачу данных из формы. Почитай про методы GET и POST.

    Покуда ты выложил код и просишь, в первую очередь таки совета, переношу в ветку для новичков. А там видно будет.
     
    denis01 нравится это.