[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите пожалуйста!!!
Robinner
Всем привет!
Пишу админку, не могу понять в чем ошибка.
Есть форма, в которой можно выбирать редактирование нескольких элементов.
Итак цикл осуществляет выборку по выбранным id из таблицы instrument , и эти данные должны записываться в другую таблицу.
Данные он выбирает те, что надо. Но вот записывает в другую таблицу не все данные. Помогите, пожалуйста.

Вот код:

if(!isset($type))
{
$x = mysql_query('SELECT * FROM `instrument` WHERE `lock` = "'.$menu.'"') or die('error');
echo "<form method=post>";
while($r = mysql_fetch_array($x))
{
echo "".$r["id"]." <input type=checkbox name=type[] value=".$r["id"]." /> ".$r["name"]."<br>";
}
echo "<div id=output>С отмечеными</div><input type=submit value='' name=edit_all class=edit_all> <input type=submit value='' name=delete_all class=delete_all></form>";


}
else if(isset($type))
{
$query = "(";
foreach($type as $val) $query.= "$val,";
$query = substr($query, 0, strlen($query) - 1).")" ;
$query = mysql_query('SELECT * FROM `instrument` WHERE `id` IN '.$query.'') or die('Ошибка!');
while($q = mysql_fetch_array($query))
{
mysql_query('INSERT INTO `temporary_instrument` (`id`, `lock`, `name`, `model`, `price`, `photo`, `des`, `presence`, `title`, `status`) VALUES ("'.$q["id"].'", "'.$q["lock"].'", "'.$q["name"].'", "'.$q["model"].'", "'.$q["price"].'", "'.$q["photo"].'", "'.$q["des"].'", "'.$q["presence"].'", "'.$q["title"].'", "'.$q["status"].'")') or die('нет записи в таблицу');
}
}



Заранее спасибо!

 ! 

М
<span style='font-size:13pt;line-height:100%'>Оформляйте код согласно  правилам форума!</span>
Kuliev




Спустя 18 минут, 50 секунд (16.12.2009 - 17:19) Romms написал(а):
А какя ошибка? даные точно к скрипту приходят?

Спустя 7 минут, 43 секунды (16.12.2009 - 17:27) Robinner написал(а):
Например, если подставить вместо запроса записи вот это:

while($q = mysql_fetch_array($query))
{
echo "".$q["id"]."<br>";
}

То оно выдаст все выбранные id.
Это, на мой взляд работает... Меня смущает то, что оно какие-то записи записывает, а какие-то нет.

Спустя 12 часов, 31 минута, 45 секунд (17.12.2009 - 05:59) NewBePhp написал(а):
Robinner
попробуй пересмотреть этот запрос... и судя по нему, после, идут записи...
$query = mysql_query('SELECT * FROM `instrument` WHERE `id` IN '.$query.'') or die('Ошибка!');

$query = substr($query, 0, strlen($query) - 1).")" ;

переменная $query несет в себе некую информацию но не сразу а по частям... и в итоге должна показать как я понял: (чего то там, чего то) ??

то исправь на
$query .= substr($query, 0, strlen($query) - 1).")" ;

если у тебя стоит вопрос о записи в базу и вывод данных ... то думаю сначало тебе условия нужно поставить на запись а потом проверка и вывод ... у тебя же это 2 действия в 1 условии - ты проверяеш или покажешь или запишеш

Спустя 30 минут, 13 секунд (17.12.2009 - 06:29) qpayct написал(а):
Попробуй для выявления ошибок прописать
if (mysql_error_number!=0) echo mysql_error;
или как то так точно не помню.

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

Спустя 11 часов, 47 минут, 16 секунд (17.12.2009 - 18:16) Robinner написал(а):
Что-то ничего не помогает, наверное я вообще что-то не то делаю...
А как лучше реализовать задачу:
Выводится в админке список товара для редактирования с checkbox.
Чтобы пользователь не видел не отредактированной информации я создаю временную таблицу и в нее копирую данные из действующей таблицы, которые нужно редактировать.Производится редактирование.
И только после того как редактирование подтверждается, новые данные возвращаются на свои старые места.
Может это все не так лучше делать?Может просто я нагородил ерунды?

Спустя 5 часов, 19 минут, 51 секунда (17.12.2009 - 23:36) qpayct написал(а):
blink.gif не вижу смысла.
редактируй, а потом если не понравилось редактируй ещё раз. в чём собственно проблема?
если не хочешь утерять прошедшие редактирования, так сохраняй.

Спустя 4 часа, 40 минут, 17 секунд (18.12.2009 - 04:16) Robinner написал(а):
Я так и делаю, если не понравилось, редактирую дальше. Но если это делать в таблице, из которой идет информация пользователю, то и пользователь будет это все видеть. А если надо вернуть старый вариант, откуда я его потом возьму?



Цитата (qpayct @ 17.12.2009 - 20:36)
если не хочешь утерять прошедшие редактирования, так сохраняй.

А как сохранять и где?

Спустя 2 дня, 20 часов, 21 минута, 10 секунд (21.12.2009 - 00:37) qpayct написал(а):
по моему делай одну таблу и не морочься,
а ошибка у тебя потому точ ты работаешь с двумя разными таблицами не правильно и ещё удивляешься потом что не работает. cool.gif
надо вообще всё не так делать.
сделай класс в который загружаеться бд в массивы, которые выгружаешь на страницу. редактируй, а когда думаешь что закончил жмёшь апдейт и если хочешь сохранять старые записи так оставляй их в таблице под меткой неактивных на случай если вдруг надо будет поменять обратно. я так делал. в админке будешь управлять потом что включить а что выключить(старые, новые)

Спустя 1 день, 12 часов, 44 минуты, 48 секунд (22.12.2009 - 13:22) Robinner написал(а):
Я просто мало компетентен...
Спасибо за подсказки, буду мучиться.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.