С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109

Вставка не в определенное место таблицы

25.09.2010, 22:09. Показов 2887. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть запрос:
PHP
1
2
mysql_query ( "INSERT INTO `dle_newspost` (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `allow_rate`, `approve`, `fixed`, `rating`, `allow_br`, `vote_num`, `news_read`, `votes`, `access`, `symbol`, `flag`, `editdate`, `editor`, `reason`, `view_edit`, `tags`, `metatitle`, `news_tid`) 
SELECT `id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `allow_rate`, `approve`, `fixed`, `rating`, `allow_br`, `vote_num`, `news_read`, `votes`, `access`, `symbol`, `flag`, `editdate`, `editor`, `reason`, `view_edit`, `tags`, `metatitle`, `news_tid` FROM `dle_post` WHERE category='3' AND approve='1' ORDER BY RAND() LIMIT 5");
запрос из таблицы dle_post вставляет 5 полей в таблицу dle_newspost. Как сделать, чтоб он вставлял эти 5 полей в поля по номеру 5-10 ( есть гарантия, что первых 5 полей существуют ), но нету столбца в котором есть номера этих полей.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2010, 22:09
Ответы с готовыми решениями:

Вставка информации в определенное место в документе
Все привет, есть у кого-нибудь пример кода как можно вставить информацию в определенные участки в файле? как пример будет к примеру 40...

Вставка элемента в определенное место списка
Добрый вечер, пишу программу на Common Lisp (defun Del (n c sp) (setq k 0) (setq z 0) (setq x 0) (dolist (el sp s) ...

Вставка рисунка на определенное место в текст Word
Добрый день! Есть шаблон Word куда вставляю рисунок, но мне необходимо его вставить его в определенное место и сделать фон прозрачным....

23
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
25.09.2010, 22:26
Так это же не update, a insert. Он и так будет вставлять туда где пусто.
0
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
25.09.2010, 22:34  [ТС]
Добавлено через 23 секунды
Цитата Сообщение от ICEBERG@ Посмотреть сообщение
Так это же не update, a insert. Он и так будет вставлять туда где пусто.
извините, тему назвал не так, мне нужно наоборот в определенное место вставлять в 5-10 поля...
0
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
25.09.2010, 22:56
делать через UPDATE так будет лутше...
1
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
25.09.2010, 23:07  [ТС]
Цитата Сообщение от Nazz Посмотреть сообщение
делать через UPDATE так будет лутше...
Можете пример показать, что именно писать чтоб вставляло с 5-й по 10-ю строку?
0
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
25.09.2010, 23:22
PHP
1
2
3
4
for ($i=5;$i<=10;$i++)
{
mysql_query ( "UPDATE `dle_newspost` SET `autor`='$autor', `date`='$date' ,... WHERE category='3' AND approve='1' AND `id`='$i'");
}
0
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
25.09.2010, 23:36  [ТС]
В том то и дело, что у меня id идут не по порядку, т.к. я в dle_newspost копирую случайные строки...
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
25.09.2010, 23:43
У него же нету нумерованного Id.

Добавлено через 5 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
$result = mysql_query ("select * ", $db);  
$myrow = mysql_fetch_array($result);
$i=0
do
{
    if ($i >4 AND $i<11) 
    {
        
            Запрос с обновлением      }
 
$i = $i+1
}
while ($myrow = mysql_fetch_array($result));
?>
Как то так.
0
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
26.09.2010, 00:22  [ТС]
Вот что получается:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
if (!mysql_connect('localhost','login','pass')) {
echo "Ошибка подключения к серверу MySQL";
exit;
}
mysql_select_db('db') or die("Could not select database");
$sql="SELECT * FROM `dle_newspost`";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
$id = $row['id'];
$autor = $row['autor'];
$date = $row['date'];
$short_story = $row['short_story'];
$full_story = $row['full_story'];
$xfields = $row['xfields'];
$title = $row['title'];
$idescr = $row['descr'];
$keywords = $row['keywords'];
$category = $row['category'];
$alt_name = $row['alt_name'];
$comm_num = $row['comm_num'];
$allow_comm = $row['allow_comm'];
$allow_main = $row['allow_main'];
$allow_rate = $row['allow_rate'];
$approve = $row['approve'];
$fixed = $row['fixed'];
$rating = $row['rating'];
$allow_br = $row['allow_br'];
$vote_num = $row['vote_num'];
$news_read = $row['news_read'];
$votes = $row['votes'];
$access = $row['access'];
$symbol = $row['symbol'];
$flag = $row['flag'];
$editdate = $row['editdate'];
$editor = $row['editor'];
$reason = $row['reason'];
$view_edit = $row['view_edit'];
$tags = $row['tags'];
$metatitle = $row['metatitle'];
$news_tid = $row['news_tid'];
$i=0;
do
{
     if ($i >5 AND $i<11) 
     {
                
     mysql_query (" UPDATE `dle_newspost' SET `id`='$row['id']', `autor`='$row['autor']', `date`='$row['date']', `short_story`='$row['short_story']', `full_story`='$row['full_story']', `xfields`='$row['xfields']', `title`='$row['title']', `descr`='$row['descr']', `keywords`='$row['keywords']', `category`='$row['category']', `alt_name`='$row['alt_name']', `comm_num`='$row['comm_num']', `allow_comm`='$row['allow_comm']', `allow_main`='$row['allow_main']', `allow_rate`='$row['allow_rate']', `approve`='$row['approve']', `fixed`='$row['fixed']', `rating`='$row['rating']', `allow_br`='$row['allow_br']', `vote_num`='$row['vote_num']', `news_read`='$row['news_read']', `votes`='$row['votes']', `access`='$row['access']', `symbol`='$row['symbol']', `flag`='$row['flag']', `editdate`='$row['editdate']', `editor`='$row['editor']', `reason`='$row['reason']', `view_edit`='$row['view_edit']', `tags`='$row['tags']', `metatitle`='$row['metatitle']', `news_tid`='$row['news_tid']' WHERE 'id'='$i'");             
     }
 
$i = $i+1;
}
while ($myrow = mysql_fetch_array($result));
 
?>
id случайное - по этому запрос не канает...
0
20 / 19 / 3
Регистрация: 20.06.2010
Сообщений: 626
26.09.2010, 00:33
PHP
1
WHERE 'id'='$i'
Это лишнее.
0
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
26.09.2010, 01:04  [ТС]
Вот уже исправленный код ( почти ):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
if (!mysql_connect('localhost','login','pass')) {
echo "Ошибка подключения к серверу MySQL";
exit;
}
mysql_select_db('db') or die("Could not select database");
$sql="SELECT * FROM `dle_newspost`";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
$id = $row['id'];
$autor = $row['autor'];
$date = $row['date'];
$short_story = $row['short_story'];
$full_story = $row['full_story'];
$xfields = $row['xfields'];
$title = $row['title'];
$idescr = $row['descr'];
$keywords = $row['keywords'];
$category = $row['category'];
$alt_name = $row['alt_name'];
$comm_num = $row['comm_num'];
$allow_comm = $row['allow_comm'];
$allow_main = $row['allow_main'];
$allow_rate = $row['allow_rate'];
$approve = $row['approve'];
$fixed = $row['fixed'];
$rating = $row['rating'];
$allow_br = $row['allow_br'];
$vote_num = $row['vote_num'];
$news_read = $row['news_read'];
$votes = $row['votes'];
$access = $row['access'];
$symbol = $row['symbol'];
$flag = $row['flag'];
$editdate = $row['editdate'];
$editor = $row['editor'];
$reason = $row['reason'];
$view_edit = $row['view_edit'];
$tags = $row['tags'];
$metatitle = $row['metatitle'];
$news_tid = $row['news_tid'];
$i=0;
do
{
     if ($i >5 AND $i<11) 
     {
                
     mysql_query (" UPDATE `dle_newspost' SET `id`={$row['id']}, `autor`={$row['autor']}, `date`={$row['date']}, `short_story`={$row['short_story']}, `full_story`={$row['full_story']}, `xfields`={$row['xfields']}, `title`={$row['title']}, `descr`={$row['descr']}, `keywords`={$row['keywords']}, `category`={$row['category']}, `alt_name`={$row['alt_name']}, `comm_num`={$row['comm_num']}, `allow_comm`={$row['allow_comm']}, `allow_main`={$row['allow_main']}, `allow_rate`={$row['allow_rate']}, `approve`={$row['approve']}, `fixed`={$row['fixed']}, `rating`={$row['rating']}, `allow_br`={$row['allow_br']}, `vote_num`={$row['vote_num']}, `news_read`={$row['news_read']}, `votes`={$row['votes']}, `access`={$row['access']}, `symbol`={$row['symbol']}, `flag`={$row['flag']}, `editdate`={$row['editdate']}, `editor`={$row['editor']}, `reason`={$row['reason']}, `view_edit`={$row['view_edit']}, `tags`={$row['tags']}, `metatitle`={$row['metatitle']}, `news_tid`={$row['news_tid']}"); echo mysql_errno() . ": " . mysql_error(). "\n";             
     }
 
$i = $i+1;
}
while ($myrow = mysql_fetch_array($result));
 
?>
mysql_error() выводит: 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET '

Добавлено через 17 минут
я пытался создать другую колонку с auto_increment, но відало ошибку:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Авто колонок у меня не было...когда хочу сделать новую колонку ключевой, то выдает другую ошибку:
SQL
1
2
3
4
5
6
SQL-запрос:
 
ALTER TABLE `dle_newspost` ADD PRIMARY KEY ( `num` )
 
Ответ MySQL: Документация
#1062 - Duplicate entry '0' FOR KEY 1
Как создать авто колоку, чтоб не парится?
0
 Аватар для coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.09.2010, 01:06
Колонка не должна быть NULL, и значения не должны повторяться в существующих строчках
0
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
26.09.2010, 01:28  [ТС]
стоит not null

Добавлено через 2 минуты
только что удалил колонку id, сделал запрос:
SQL
1
ALTER TABLE `dle_newspost` ADD PRIMARY KEY ( `num` )
так же ошибка

Добавлено через 2 минуты
Так я не могу сделать чтоб этот столбец автоматически заполнялся, по этому оно 0 и ставить...

Добавлено через 1 минуту
сделал, просто почитсли таблицу, чтоб не было совпадений )

Добавлено через 14 минут
дописал WHERE 'num = '$i' и всеравно выдает

1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET '

Если не получится решить, то придется создавать 14 таблиц ))
0
 Аватар для coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.09.2010, 01:34
SQL
1
2
ALTER TABLE `dle_newspost` ADD `test` INT NOT NULL AUTO_INCREMENT ,
ADD PRIMARY KEY ( `test` )
так попробуй
1
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
26.09.2010, 01:41  [ТС]
Спасибо, но я уже написал, что получилось ) нужно было очистить таблицу =) проблема заключается в этой ошибке:
1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET '
то есть скрипт запускается, но каждый раз запрос не может выполнится потому что не правильное имя таблицы 0_о, странно...
0
 Аватар для coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.09.2010, 01:50
так ты добавляешь только ключ к таблице, при этом свойство AUTO_INCREMENT не добавляешь.
как оно у тебя заработало непонятно.

Добавлено через 56 секунд
ну то понятно что ты не создашь ключевым столбец где значения повторяются.
0
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
26.09.2010, 02:15  [ТС]
AUTO_INCREMENT поставил конечно, а как ещё ) Вот бы помогли б мне с ошибкой той, 2-й день мучаюсь с этим скриптом, вроде и не сложный, а всеже...

Добавлено через 2 минуты
1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET ' 1103: Incorrect table name 'dle_newspost' SET '

Добавлено через 13 минут
Тогда хоть подскажите как повлияет ещё 14 таблиц на скорость выполнения запроса ?)
0
 Аватар для coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.09.2010, 02:22
Цитата Сообщение от Cashman Посмотреть сообщение
UPDATE `dle_newspost' SET
ковычки исправь
UPDATE `dle_newspost` SET
1
2 / 2 / 1
Регистрация: 07.03.2010
Сообщений: 109
26.09.2010, 02:36  [ТС]
Помогло, но выскочила следующая ) :
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '09:26:13, `short_story`=
0
 Аватар для coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.09.2010, 03:05
Формат даты неправильный.
стоп а что ты делаешь?
ты присваиваешь переменой $date значение $row['date']; а потом $row['date']; записываешь в базу, правильно я понял? зачем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2010, 03:05
Помогаю со студенческими работами здесь

Вставка текста в определенное место документа, Word
Всем привет, мне нужно сделать самым простым способом вставку текста из С++ в определеннные места в Word. Желателен подробный пример. ...

Копирование значения ячейки по нажатию и вставка из буфера в определенное место
Добрый день! Надеюсь на помощь в поиске решения) Есть отчет, в котором постоянно изменяется список товаров (выделен зеленой...

Определённое место окна
Здравствуйте господа програмисты!я пишу на dev c++ для &quot;dos&quot; и столкнулся с такой проблемой- как сделать так,что бы dos-овское окно...

Извлечение файлов в определенное место
Всем доброе врем суток, я новичёк у вас на форуме, подскажите у меня есть файл длл который лежит в ResLib.res, как его извлечь в...

Запись в определенное место в файле
В датагрид вью запарсили сайт и нужно теперь в определенное место вместо записать в файле название фильма например. &lt;Class...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru