создаю пустую таблицу
$kat=$_POST['kat'];#получаю название из формы
$sql = "CREATE TABLE `xxx`.`".$kat."` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`zagol_1` TEXT NOT NULL,
PRIMARY KEY (`id`))
ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;";
Таблица изначально пустая, пытаюсь загнать туда данные путём UPDATE из формы.
переменная $tem получаю по гет.
mysql_query("UPDATE `".$tem."` SET `zagol_1`='".mysql_real_escape_string($_POST['zagol_1'])."' ");
всё работает только в случае если были уже произведенны какие то записи в этой таблице.
Если ещё небыло записей и только созданна то и не работает UPDATE
Если использовать ИНСЕРТ то он дописывает а я хочу постоянно обновлять.
Спустя 2 минуты, 37 секунд (3.12.2011 - 02:29) inpost написал(а):
sebastjan
Если пусто, то не работает? Ошибка какая? mysql_error() ?
Если пусто, то не работает? Ошибка какая? mysql_error() ?
Спустя 5 минут, 49 секунд (3.12.2011 - 02:35) sebastjan написал(а):
Вообще ни каких оштибок, просто при выполнении АПДЕЙТ ничего не поисходит и запись не появляется.
Суть такая, создал таблицу, в другой форме накнопал и послал в эту таблицу с использованием АПДЕЙТ.
Но не работает до тех пор пака просто из МайАдмин не впишеш в таблицу тчо то и стерёшь.
может я неправильно создаю таблицу..?
Суть такая, создал таблицу, в другой форме накнопал и послал в эту таблицу с использованием АПДЕЙТ.
Но не работает до тех пор пака просто из МайАдмин не впишеш в таблицу тчо то и стерёшь.
может я неправильно создаю таблицу..?
Спустя 45 секунд (3.12.2011 - 02:36) inpost написал(а):
sebastjan
А добавляться не будет при UPDATE.
Может тебе надо: INSERT ON DUPLICATE UPDATE ?
А добавляться не будет при UPDATE.
Может тебе надо: INSERT ON DUPLICATE UPDATE ?
Спустя 1 минута, 31 секунда (3.12.2011 - 02:37) sebastjan написал(а):
Цитата (inpost @ 2.12.2011 - 23:36) |
sebastjan А добавляться не будет при UPDATE. Может тебе надо: INSERT ON DUPLICATE UPDATE ? |
Спасибо ,сейчас попробую.
Спустя 2 минуты, 35 секунд (3.12.2011 - 02:40) sebastjan написал(а):
НЕ сработало.
Спустя 1 минута, 59 секунд (3.12.2011 - 02:42) inpost написал(а):
Если не существует, то запись будет добавлена, а если такая существует, то будет обновлены записи в ней. Тебе именно это и надо было? Если да, то значит неправильно использовал
Спустя 12 минут, 34 секунды (3.12.2011 - 02:54) sebastjan написал(а):
mysql_query("INSERT ON DUPLICATE UPDATE `sasass` SET `zagol_1`='".mysql_real_escape_string($_POST['zagol_1'])."' ");
Да именно хочу то что ты сказал.
Но что то не получается, где то синтаксис нарушен.
Точно не то намудрил у меня в справочнике ничего подобного по базам нет.
Спустя 3 минуты, 28 секунд (3.12.2011 - 02:58) Invis1ble написал(а):
сорри, провтыкал
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 минута, 33 секунды (3.12.2011 - 02:59) Placido написал(а):
Спустя 1 минута, 4 секунды (3.12.2011 - 03:01) Invis1ble написал(а):
кстати, да ![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
sebastjan, почему не используешь mysql_error() ?
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
sebastjan, почему не используешь mysql_error() ?
Спустя 6 минут, 45 секунд (3.12.2011 - 03:07) sebastjan написал(а):
Цитата (Invis1ble @ 3.12.2011 - 00:01) |
кстати, да :lol: sebastjan, почему не используешь mysql_error() . а вто если так, то конечно сразу выкинуло синтаксис кривой mysql_query("INSERT ON DUPLICATE UPDATE `sasass` SET `zagol_1`='".mysql_real_escape_string($_POST['zagol_1'])."' "); |
так БД ошибку не выдаёт при просто использованииАПДЕЙТ.
а вто если так, то конечно сразу выкинуло синтаксис кривой
mysql_query("INSERT ON DUPLICATE UPDATE `sasass` SET `zagol_1`='".mysql_real_escape_string($_POST['zagol_1'])."' ");
:)
Спустя 2 минуты, 56 секунд (3.12.2011 - 03:10) Invis1ble написал(а):
Причем тут просто UPDATE, ты ведь используешь запрос insert ... update - вот на нем и нужно смотреть ошибки
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 4 минуты, 41 секунда (3.12.2011 - 03:15) TranceIT написал(а):
INSERT INTO table (col) VALUES (value) ON DUPLICATE KEY UPDATE table SET col=value
Не уверен...
Спустя 1 минута, 40 секунд (3.12.2011 - 03:17) Invis1ble написал(а):
TranceIT
по ссылке выше описан синтаксис
по ссылке выше описан синтаксис
Спустя 4 минуты, 27 секунд (3.12.2011 - 03:21) sebastjan написал(а):
Да по ссылке и учусь сейчас.
Спасибо всем, не знал про этот оператор.Старенький ман у меня.
Надо поискать пообширней и поновей.
inpost +
Invis1ble +
TranceIT +
Placido +
Спасибо всем, не знал про этот оператор.Старенький ман у меня.
Надо поискать пообширней и поновей.
inpost +
Invis1ble +
TranceIT +
Placido +
Спустя 1 час, 14 минут, 9 секунд (3.12.2011 - 04:35) sebastjan написал(а):
Вот - создана ранее таблица пустая ВВВ
Запускаю - это
вставка из перемиенных работает
Но стоит изменить знасения переменным чтоб обновить, ни чего не выходит.
Растолкуйте мне что значит ON DUPLICATE KEY UPDATE.
я так понял это ключ по которому определяем строку в таблице чтоб обновить.
Я задал по ID=1.
Так как хочу чтоб только одна строка в таблице с этим ID обновлялась.
Не хватает мозгов осмыслить.
Запускаю - это
include('modul/conect_bd.php');
$id=1;
$a="ddd";
$b="aaaa";
$c="vv";
mysql_query("INSERT INTO `BBB` (id, zagol_1, zagol_2, text_1) VALUES ('".$id."','".$a."','".$b."','".$c."')
ON DUPLICATE KEY UPDATE id='".$id."' ")or die (mysql_error());
вставка из перемиенных работает
Но стоит изменить знасения переменным чтоб обновить, ни чего не выходит.
Растолкуйте мне что значит ON DUPLICATE KEY UPDATE.
я так понял это ключ по которому определяем строку в таблице чтоб обновить.
Я задал по ID=1.
Так как хочу чтоб только одна строка в таблице с этим ID обновлялась.
Не хватает мозгов осмыслить.
Спустя 19 минут, 2 секунды (3.12.2011 - 04:54) Invis1ble написал(а):
sebastjan
Цитата |
Растолкуйте мне что значит ON DUPLICATE KEY UPDATE. |
ты указываешь в блоке INSERT данные, мускул смотрит - если там присутствует первичный/уникальный ключ и в таблице есть запись с ключом с таким значением - выполняется UPDATE (обновление существующей записи с таким ключом) согласно данным в блоке UPDATE, иначе (если записи с таким ключом еще нет) - выполняется INSERT (добавление новой записи).
Спустя 11 минут, 5 секунд Invis1ble написал(а):
в твоем случае, если я правильно понял, что тебе нужно, запрос будет выглядеть примерно так:
$query =
"INSERT INTO `BBB`
(`id`, `zagol_1`, `zagol_2`, `text_1`)
VALUES
(" . $id . ", '" . $a . "', '" . $b . "', '" . $c . "')
ON DUPLICATE KEY UPDATE
`zagol_1` = '" . $a . "',
`zagol_2` = '" . $b . "',
`text_1` = '" . $c . "'";
Спустя 6 часов, 57 минут, 27 секунд (3.12.2011 - 11:52) sebastjan написал(а):
Invis1ble Спасибо большое, заработало.
Я по глупости вставлял
Я по глупости вставлял
ON DUPLICATE KEY UPDATE
VALUE(`zagol_1` = '" . $a . "',
`zagol_2` = '" . $b . "',
`text_1` = '" . $c . "')
Спустя 42 минуты, 8 секунд (3.12.2011 - 12:34) Michael написал(а):
Цитата (sebastjan @ 3.12.2011 - 01:27) |
mysql_query("UPDATE `".$tem."` SET `zagol_1`='".mysql_real_escape_string($_POST['zagol_1'])."' "); |
Вот это конечно убило... UPDATE на таблицу без WHERE :blink:
Цитата (sebastjan) |
всё работает только в случае если были уже произведенны какие то записи в этой таблице. Если ещё небыло записей и только созданна то и не работает UPDATE Если использовать ИНСЕРТ то он дописывает а я хочу постоянно обновлять. |
мда, он не понимает разницы между вставкой новой строки и редактированием существующей... Кто бы мог подумать, 9 месяце вроде чем то занимается ...
p.s. REPLACE кстати тоже покатит.
Спустя 55 минут, 35 секунд (3.12.2011 - 13:29) sebastjan написал(а):
Michael
Цитата |
Вот это конечно убило... UPDATE на таблицу без Вот это конечно убило... UPDATE на таблицу без WHERE |
В таблице только одна запись так тчо без WHERE всё работало при условии что запись редактировалась ранее. Но если таблица созданна пустая то без ON DUPLICATE KEY UPDATE
ни как.
Цитата |
мда, он не понимает разницы между вставкой новой строки и редактированием существующей... Кто бы мог подумать, 9 месяце вроде чем то занимается ... |
Вроде чем то занимаюсь
![rolleyes.gif](http://phpforum.ru/html/emoticons/rolleyes.gif)
Стараюсь как могу.
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Спустя 30 минут, 1 секунда (3.12.2011 - 13:59) Michael написал(а):
Цитата (sebastjan) |
В таблице только одна запись |
Тебе и linker и я говорили в прошлой твоей теме - со структурой у тебя не лады. Таблица БД не создается чтобы хранить только одну запись.
Спустя 6 минут, 49 секунд (3.12.2011 - 14:06) sebastjan написал(а):
Michael
Да согласен я со всем, действительно пока не лады с построением логики в таблицах.
Сам себя ругаю.
Да согласен я со всем, действительно пока не лады с построением логики в таблицах.
Сам себя ругаю.