Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: немогу разобраться с таблицами mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: надо перенести строку одной таблицы в другую и наоборот
vlad2020
Отправлено: 19 Августа, 2016 - 21:09:21
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2016  


Помог: 0 раз(а)




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

подключаюсь к базе


выбираю таблицу
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM tab1");
  2. $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. }

условие цыкла


Файл обработчик выглядит так

принимаем значение от 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 );
  3.  


Проблема в том что когда я нажимаю на кнопку в файл обработчик должно передаваться id той строки на которую я нажал, а передается только один последний id и всё.

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

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

(Отредактировано автором: 19 Августа, 2016 - 21:13:53)

 
 Top
Denkill
Отправлено: 12 Сентября, 2016 - 09:17:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Перепиши кусок
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 type='hidden' name='id' value=".$myrow['id'].">
  7. <input type='hidden' name='name' value=".$myrow['name'].">
  8. <input id='submit' type='submit' name='submit' value='перенести'><br/>
  9.  
  10. </fieldset>
  11. </form>
  12. </td></tr>"
  13.  
  14. );


и тогда этот кусок вверху странички:
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['submit'])){
  3. $id = (int)$_POST['id'];
  4. $name = $_POST['name'];
  5. $past = "INSERT INTO `tab1` (`id`, `name`) VALUES(`".$id."`, `".$name."`)";
  6. mysql_query( $past );
  7. $delete = "DELETE FROM `tab2` WHERE id='".$id."'";
  8. mysql_query( $delete );
  9. }


-----
Хо-Хо-Хо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB