Перенос данных из таблицы

CR@ZY HE@LTH
На сайте с 08.02.2009
Offline
18
525

Есть база данных, в ней две таблицы: "zayavka1" (предварительная база, где будут хранится не проверенные записи) и "zayavka" (конечный вариант, где будут хранится записи отобранные пользователем). В некотором файле происходит вывод данных из таблицы "zayavka1", по клику пользователь должен перенести строку (все строки отмечены собственным ID) в соседнюю таблицу - "zayavka". Попытался реализовать перенос самостоятельно, получился следующий код, но он не работает. Помогите решить проблему.


<?php
include "inc/connect.php";
$id = $_REQUEST['id'];
$group = intval($_POST['group']);
$name = mysql_real_escape_string($_POST['name'], $connect);
$text = mysql_real_escape_string($_POST['text'], $connect);
if($text!=""){
$query = "INSERT INTO zayavka (`id`,`group`,`name`,`text`) ".
"SELECT `id`,`group`,`name`,`text` FROM zayavka1 WHERE id=$id";
$result = mysql_query ($query,$connect) or die ("Ошибка");
}
echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">';
?>
L
На сайте с 07.12.2007
Offline
351
#1

CR@ZY HE@LTH, что именно не работает? Mysql выдает ошибку?

Зачем Вы присылаете переменные $group, $name и $text, когда достаточно только $id.

У меня код "INSERT INTO zayavka ('id','group','name','text') SELECT 'id','group','name','text' FROM zayavka1 WHERE id='$id' " работает нормально, только кавычки ' вместо ` (это не принципиально) и поле id в таблице zayavka - не автоинкрементное.

Может у Вас $_POST['text'] присылается пустой?

Сделайте отладку:

<?php

include "inc/connect.php";
$id = $_REQUEST['id'];
$group = intval($_POST['group']);
$name = mysql_real_escape_string($_POST['name'], $connect);
$text = mysql_real_escape_string($_POST['text'], $connect);

// Отладка получения параметров:
echo "id='$id', group='$group', name='$name', text='$text' <br>";

if($text!=""){
$query = "INSERT INTO zayavka (`id`,`group`,`name`,`text`) ".
"SELECT `id`,`group`,`name`,`text` FROM zayavka1 WHERE id=$id";
$result = mysql_query ($query,$connect) or die ("Ошибка");
}

// Отладка записи в БД:
$res = mysql_query("SELECT * FROM zayavka WHERE id='$id' ", $connect);
$row = mysql_fetch_array($res);
echo "id={$row['id']}, group={$row['group']}, name= {$row['name']}, text={$row['text']}<br>";
?>
neptun
На сайте с 12.12.2007
Offline
79
#2

А зачем дублировать данные? Думаю достаточно хранить во второй таблице только код записи.

CR@ZY HE@LTH
На сайте с 08.02.2009
Offline
18
#3

Ladycharm, спасибо огромное за ответ. Решилась проблема тем, что код был "переделан" (почему - то я упустил из виду, что $text остается пустым). Код принял следующий вид:


<?php
include "inc/connect.php";
$id = $_REQUEST['id'];
$query = "INSERT INTO zayavka (`id`,`group`,`name`,`text`) ".
"SELECT `id`,`group`,`name`,`text` FROM zayavka1 WHERE id=$id";
$result = mysql_query ($query,$connect) or die ("Ошибка");
echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">';
?>

И в итоге главной ошибкой оказалось отсутствие 'id' в одной из таблиц:) Спасибо еще раз:)

neptun, по задумке таблицы будут иметь разный вид т.е. первоначальный вариант будет меньше, чем конечный.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий