PHP.SU

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

Страниц (83): В начало « ... 52 53 54 55 [56] 57 58 59 60 ... » В конец

> Найдено сообщений: 1232
tuareg Отправлено: 16 Апреля, 2012 - 10:22:17 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
Нет будет тоже самое. Просто если INSERT UPDATE делает 2 запроса( Сначала INSERT, и если совпадение то UPDATE), то REPLACE сделает 3 (INSERT->DELETE->INSERT). И при
REPLACE (я не знаю точно!!!), но возможно сработает и каскадное удаление в таблицах типа INNODB. Плюс наверняка сработают и триггеры на DELETE. Т.е в данном случае мне кажется это не совсем оптимальным вариантом.
tuareg Отправлено: 15 Апреля, 2012 - 20:14:04 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
Да не за что. Я помню сам не одну ночь потратил, чтобы в этой штуковине разобраться.
tuareg Отправлено: 15 Апреля, 2012 - 20:05:33 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
Нет, не должен. Я сейчас пробовал, все нормально Улыбка
tuareg Отправлено: 15 Апреля, 2012 - 19:59:21 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
Вот смотрите. Есть индекс по полям 'id1' и 'id2'.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. ....
  3. UNIQUE KEY `inde` (`id`,`id_2`)
  4.  

Запросы
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO `test`(`id_2`,`id`,`text`) VALUES (2,1,'wer') ON DUPLICATE KEY UPDATE `text`=VALUES(`text`);
  3.  

и
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO `test`(`id`,`id_2`,`text`) VALUES (1,2,'wer') ON DUPLICATE KEY UPDATE `text`=VALUES(`text`);
  3.  

Приведут к одинаковому результату-->обновлению. (естественно если уже есть id=1 и id2=2)
А вот запросы
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO `test`(`id`,`id_2`,`text`) VALUES (2,1,'wer') ON DUPLICATE KEY UPDATE `text`=VALUES(`text`);
  3.  

и
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO `test`(`id_2`,`id`,`text`) VALUES (1,2,'wer') ON DUPLICATE KEY UPDATE `text`=VALUES(`text`);
  3.  

Приведут к вставке.
P.S Плохой из меня объясняльщик Улыбка
tuareg Отправлено: 15 Апреля, 2012 - 19:46:09 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
Конечно. Это самое главное. Я для себя уяснил следующее. Индекс что-то типа массива .(составной ассоциативный) Сами понимаете есть массив
$arr1[1][2]=2;
и
$arr2[2][1]=3;
Равенство здесь нет.
P.S я прекрасно понимаю, что это даже близко не подходит под определение И-tree индекса и т.д.
Но мне так проще объяснить.
tuareg Отправлено: 15 Апреля, 2012 - 19:26:29 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
Нет. На сколько я его правильно понял...
Есть таблица три поля по 1-му и 2-полю есть составной индекс(уникальный).
Допустим id1==>1 и id2==>1 и третье поле text="бла-бла";
Чтобы обновилось поле text запрос д.б таким
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. "INSERT INTO `table`
  3. (`id1`, `id2`, `text`)
  4. VALUES
  5. (1, 1, 'не бла-бла')
  6. ON DUPLICATE KEY UPDATE
  7. `text` = VALUES (`text`)
  8.  

Так вот, в данном случае поле обновится, потому что обе части (id1 и id2) полностью совпадают.
А если допустим
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. "INSERT INTO `table`
  3. (`id1`, `id2`, `text`)
  4. VALUES
  5. (1, 2, 'не бла-бла')
  6. ON DUPLICATE KEY UPDATE
  7. `text` = VALUES (`text`)
  8.  

То произойдет вставка, т.к id1 совпадет, а вот id2 нет
tuareg Отправлено: 15 Апреля, 2012 - 19:12:45 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `csv_export` SET `product_name`='ccccc' ,`price`='111.11'
  2. WHERE `artikul`=1111

А с чего он должен их обновлять, если Вы эти поля не указываете.
Я не правильно выразился Растерялся , не равносильно, а возможно только так. Чтобы поля обновилсь
надо
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. "INSERT INTO `csv_export`
  3. (`artikul`, `product_name`, `price`)
  4. VALUES
  5. ('1111', 'ccccc', '111.11'),
  6. ('2222', 'ddddd', '222.22')
  7. ON DUPLICATE KEY UPDATE
  8. `product_name` = VALUES (`product_name`),
  9. `price`=VALUES(`price`)
  10.  
tuareg Отправлено: 15 Апреля, 2012 - 19:04:36 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
armancho7777777 пишет:

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. "INSERT INTO `csv_export`
  3. (`artikul`, `product_name`, `price`)
  4. VALUES
  5. ('1111', 'ccccc', '111.11'),
  6. ('2222', 'ddddd', '222.22')
  7. ON DUPLICATE KEY UPDATE
  8. `artikul` = VALUES (`artikul`)
  9.  

Все правильно, странно, что еще ошибок не выдает
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  ON DUPLICATE KEY UPDATE
  3.  

Равносильно
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. UPDATE `csv_export` SET `product_name`='ccccc' ,`price`='111.11'
  3. WHERE `artikul`=1111
  4.  

Вот так этот запрос будет преобразовываться.
tuareg Отправлено: 15 Апреля, 2012 - 18:47:15 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
EuGen пишет:
Именно это и имелось ввиду. Распространенная ошибка. Уникальным в случае множественного индекса должен быть весь кортеж, а не отдельное поле.

Улыбка Значит я не понял, что Вы имели ввиду.
P.S Просто для меня очевидно, что понятие "уникальный" означает единственный в своем роде.
tuareg Отправлено: 15 Апреля, 2012 - 17:57:02 • Тема: ON DUPLICATE KEY UPDATE не обновляет запись • Форум: Работа с СУБД

Ответов: 29
Просмотров: 8418
EuGen пишет:
armancho7777777
Покажите Ваш SHOW CREATE TABLE (подозреваю, что уникальный ключ, созданный Вами - по нескольким колонкам)

EuGen MySQL обновит поле,даже если уникальный индекс создан по нескольким колонкам (проверил в myisam правда оба поля были int(11)).
armancho7777777
У Вас по какому полю(-ям) стоит уникальный индекс?
tuareg Отправлено: 15 Апреля, 2012 - 09:22:02 • Тема: Обработка AJAX на стороне сервера • Форум: HTTP и PHP

Ответов: 23
Просмотров: 10078
Ну значит так
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. var form_data = {};
  3. $('#form').find('input:text, select').each(function(index, element) {
  4.      form_data[this.name]=[];                                          
  5.      form_data[this.name][index] = this.value;
  6.                                                    
  7. });
  8.  

Нельзя в js делать ассоциативные массивы как в PHP. Вот он и ругается. Подмигивание
tuareg Отправлено: 14 Апреля, 2012 - 23:27:54 • Тема: Обработка AJAX на стороне сервера • Форум: HTTP и PHP

Ответов: 23
Просмотров: 10078
armancho7777777 пишет:

Это не работает:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var form_data = {};
  3. $('#form').find('input:text, select').each(function() {
  4.        form_data[this.name][index] = this.value;
  5. });
  6.  

index == undefined
.

Ну так-то логично, что это не работает, где переменная index?
CODE (text):
скопировать код в буфер обмена
  1.  
  2. .each(callback(index, domElement))// из док-и
  3.  

Тогда Ваш пример
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var form_data = {};
  3. $('#form').find('input:text, select').each(function(i) {
  4.        form_data[this.name][i] = this.value;
  5. });
  6.  
tuareg Отправлено: 14 Апреля, 2012 - 12:42:23 • Тема: Движок • Форум: CMS и фреймворки

Ответов: 174
Просмотров: 48837
Crate пишет:
Запатчил 1.0.1, теперь должно работать.

Я еще не ставил последнюю, но не последнюю поставил Улыбка
Давай сразу опишу, что и как (мое личное мнение):
Верстка.
Смотри есть много on-line генераторов шаблонов CSS
http://csstemplater[dot]com/ генератор шаблонов
Вот еще не плохой проект
http://ru[dot]html5boilerplate[dot]com/
Функционал:
Я никогда не буду пользоваться панелью управления, в которой для того чтобы изменить позицию допустим с 1 на 30, мне надо будет нажать 29 раз!!!!
Самый тривиальный пример использовать jQuery + jQueryUI sortable. Если нужна будет помощь в SQL запросе пиши помогу Улыбка.

P.S Сейчас еще обратил внимание на всех страницах кроме ../panel/pages.php?mode=edit&...
Выдается ошибка js (я так понимаю ошибка wisivig редактора)
Кстати, на счет него тебе не кажется что его размер надо увеличить? И еще обычно страницы набирают в WORD-e, а где вставка из Word?

P.S.S Все о чем я написал, это не критика, это как бы дальнейшие цели.
Да и еще
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT username, password FROM users WHERE id = '1'

Цифры не надо брать в кавычки.
Я не нашел нигде mysql_real_escape_string()?
И вообще надо использовать либо mysqli_*, либо PDO
tuareg Отправлено: 12 Апреля, 2012 - 16:20:25 • Тема: Движок • Форум: CMS и фреймворки

Ответов: 174
Просмотров: 48837
Нормально все у Вас Вы выбрали правильный путь развития
tuareg Отправлено: 11 Апреля, 2012 - 18:00:12 • Тема: Движок • Форум: CMS и фреймворки

Ответов: 174
Просмотров: 48837
Я скачал и открыл дамп MySQL. Вы про индексы слышали? Это просто как бы тема для размышления

Страниц (83): В начало « ... 52 53 54 55 [56] 57 58 59 60 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB