PHP.SU

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

Страниц (83): В начало « ... 11 12 13 14 [15] 16 17 18 19 ... » В конец

> Найдено сообщений: 1232
tuareg Отправлено: 28 Февраля, 2013 - 18:10:43 • Тема: массив • Форум: Вопросы новичков

Ответов: 2
Просмотров: 93
Поменяйте структуру таблицы
tuareg Отправлено: 28 Февраля, 2013 - 18:09:20 • Тема: Вложить select в insert • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 52
Если только одно значение, то можно и одним запросом типа:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT `table`(`url`) VALUES(SELECT `url` FROM `table` AS t WHERE t.`id`=1);
  3.  

Иначе процедура, или php
(Добавление)
esterio пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO tablename(url) SELECT url FROM tablename2  WHERE id=1;

Не прокатит, по примеру url берется из самой таблицу, в которую вставляется
tuareg Отправлено: 15 Февраля, 2013 - 21:17:46 • Тема: SELECT в INSERT • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 48
Можно и одним.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT INTO `bdp3c_webcon_rel_subscribers`
  3.             (`cid`, `sid`, `ordering`, `custom_subscr_params`, `is_active`)
  4. VALUES ('2', '15', '(SELECT IFNULL(MAX(`ordering`),0) FROM `bdp3c_webcon_rel_subscribers` As t WHERE `cid` = 2)', '{}', '0');
  5.  
tuareg Отправлено: 31 Января, 2013 - 23:20:39 • Тема: Проблемы с remove() • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 952
remove() удаляет узел Улыбка
А все остальное верно
tuareg Отправлено: 31 Января, 2013 - 21:23:41 • Тема: Как лучше сделать • Форум: Работа с файловой системой и файлами

Ответов: 5
Просмотров: 1446
спасибо
tuareg Отправлено: 31 Января, 2013 - 21:15:43 • Тема: Как лучше сделать • Форум: Работа с файловой системой и файлами

Ответов: 5
Просмотров: 1446
Подводя итог: Держим дескриптор открытым, и вставляем по одной строке. Я правильно понял?
tuareg Отправлено: 31 Января, 2013 - 21:07:58 • Тема: Как лучше сделать • Форум: Работа с файловой системой и файлами

Ответов: 5
Просмотров: 1446
Здравствуйте. Возник вопрос.
Есть задача. Сгенерировать большой файл(прайс-лист ~700 000 позиций) В принципе решение готово.(около 3 минут) Но суть не в этом. Может ли кто-нибудь подсказать, как лучше формировать файл:
построчно, или же делать массив строк ~1000 и разом вставлять.

P.S Я понимаю,что КО просто потестить, но может уже кто-то сталкивался, или знает особенности генерации файлов PHP
tuareg Отправлено: 05 Января, 2013 - 23:18:15 • Тема: рандомная выборка и JOIN • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 60
Можно сделать так. Вам ведь нужна случайная картинка? Вводите доп. поле, в которое пишите порядковый номер картинки. 1,2, N. По нему индекс, лучше даже индекс типа группа+это поле, можно сделать его уникальным.
Теперь запросы на выборку.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. #increment это как раз то поле
  3. #parent это связь :)
  4. SELECT MAX(`increment`)  FROM `table` WHERE `parent`=1;
  5.  

Получим сколько всего картинок. Дальше я думаю и так все ясно. Сгенерировали массив случайных от 0 до MAX(`increment`) И запрос
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. # я пишу *, но лучше перечислите те поля, которые Вам реально надо
  3. SELECT *  FROM `table` WHERE `parent`=1 AND increment IN('тут массив через запятую');
  4.  

Это что касается вывода.
Необходимо еще поддерживать целостность поля increment.
При вставке просто увеличивайте на +1
При удалении:
Перед удалением выполните сначала найдите increment удаляемой записи
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `increment`,`parent` FROM `table` WHERE `id`=1;
  3. UPDATE `table` SET `increment`=`increment`удаляемой записи WHERE `parent`=`parent` AND `increment`=MAX(`increment`)
  4.  

Последний запрос скорей всего некорректен (синтаксис не правилен на счет MAX(increment)), но общая логика понятна. EXPLAIN этих запросов будет достаточно хорош Улыбка
tuareg Отправлено: 26 Декабря, 2012 - 16:51:53 • Тема: Баг в Опере 12.12 с событиями... • Форум: JavaScript & VBScript

Ответов: 20
Просмотров: 3470
В опере много чего еще срабатывает. Они там своей жизнью живут. Улыбка
tuareg Отправлено: 15 Декабря, 2012 - 21:14:14 • Тема: Отличие в плане безопасности • Форум: Вопросы новичков

Ответов: 20
Просмотров: 572
Bio man пишет:
LIME, prepared statements и param binding сделает код более безопасным от инъекций чем всякие escape_string.

И замедлят выполнение запроса раза в полтора(+/-) Улыбка
tuareg Отправлено: 02 Декабря, 2012 - 08:36:29 • Тема: Помогите сделать плавное появление • Форум: JavaScript & VBScript

Ответов: 14
Просмотров: 2444
Тут самый прикол, м.б в том, что при запросах в цикле(не используя рекурсию), результат, более раннего запроса, может придти позже, более позднего. и будет весело Улыбка. А так если по уму, то использовать done() и т.д
tuareg Отправлено: 17 Ноября, 2012 - 11:16:48 • Тема: Как получить все id вставленные последним запросом? • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 130
Что-то типа такого писал тут, так что ...
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE PROCEDURE `myProcedure`(param int(1))
  3. body:
  4. BEGIN
  5. INSERT INTO
  6. `ttables`
  7. VALUES(
  8. NULL,
  9. 0,
  10. '11-11',
  11. '11-12',
  12. CONCAT('test_name_copy_',
  13. (SELECT
  14. MAX(`id`)+1
  15. FROM `ttables` tt
  16. LIMIT 1)
  17. ),
  18. 102,
  19. 16);
  20. SET @lastId=LAST_INSERT_ID(); # получили последний id
  21. SET @idd=0;
  22.  BEGIN
  23.   DECLARE `done`,`idd` int(11) UNSIGNED DEFAULT 0;
  24.   DECLARE insertBd CURSOR FOR SELECT `id` FROM `stops` WHERE `ttable_id`=@lastId;
  25.    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
  26.   Open insertBd;
  27.   WHILE done = 0 DO
  28.     FETCH insertBd INTO @idd;
  29.        SET @stmt_text := "
  30.        INSERT INTO     `stops`
  31.        (`ttable_id`,
  32.        `name`,
  33.        `ord_number`,
  34.        `latitude`,
  35.        `longitude`,
  36.        `dec_latitude`,
  37.        `dec_longitude`)
  38.        SELECT
  39.                ?,
  40.                `name`,
  41.                `ord_number`,
  42.                `latitude`,
  43.                `longitude`,
  44.                `dec_latitude`,
  45.                `dec_longitude`
  46.                FROM `stops`
  47.                WHERE `id` = ? LIMIT 1;
  48.        "
  49.         PREPARE stmt FROM @stmt_text;
  50.         EXECUTE stmt USING @lastId,@idd ;
  51.         DEALLOCATE PREPARE stmt;
  52.         /*тут второй запрос по аналогии*/
  53.   END WHILE;
  54.   CLOSE transformTable;
  55.   END
  56. END;
  57.  
tuareg Отправлено: 17 Ноября, 2012 - 09:39:25 • Тема: Как получить все id вставленные последним запросом? • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 130
Читаем про курсоры MySQL. Запросы в цикле--> подготовленные выражения. Улыбка
Или нужен код?
P.S LIMIT 1 Можно убрать, если поле уникальный индекс(AI и т.п)
tuareg Отправлено: 16 Ноября, 2012 - 05:40:35 • Тема: Как получить все id вставленные последним запросом? • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 130
триггеры. В процедуре ни как.
tuareg Отправлено: 10 Ноября, 2012 - 07:58:58 • Тема: нахождение суммы чисел в поле со строкой • Форум: Работа с СУБД

Ответов: 24
Просмотров: 6522
Что вернет функция если на первой итерации while-а будет false?
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. IF !@ID THEN RETURN returnID; END IF;
  3.  

Страниц (83): В начало « ... 11 12 13 14 [15] 16 17 18 19 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB