|
|
|
| Здравствуйте Уважаемое сообщество.
Мне нужно добавить контент к table_1 для поля Field 3 (сам контент должен добвлятся из table_2 поля Field 2)
Пусть у меня есть таблица table_1
CREATE TABLE IF NOT EXISTS table_1 (
`ID` VARCHAR(255),
`Field 1` VARCHAR(255),
`Field 2` VARCHAR(255),
`Field 3` longtext) TYPE=MyISAM DEFAULT CHARSET=utf8;
INSERT IGNORE INTO table_1 (`ID`,`Field 1`,`Field 2`,`Field 3`) VALUES
('1','Уроки Photoshop 1','Рубрика: Эффекты 1','Содержимое контента 1'),
('2','Уроки Photoshop 2','Рубрика: Эффекты 2','Содержимое контента 2'),
('3','Уроки Photoshop 3','Рубрика: Эффекты 3','Содержимое контента 3'),
('4','Уроки Photoshop 4','Рубрика: Эффекты 4','Содержимое контента 4'),
('5','Уроки Photoshop 5','Рубрика: Эффекты 5','Содержимое контента 5')
|
И в поле Field 3 table_1 нужно добавить контент из таблицы table_2 поля Field 2
для table_2
CREATE TABLE IF NOT EXISTS table_2 (
`ID` VARCHAR(255),
`Field 1` VARCHAR(255),
`Field 2` longtext) TYPE=MyISAM DEFAULT CHARSET=utf8;
INSERT IGNORE INTO table_1 (`ID`,`Field 1`,`Field 2`) VALUES
('1','Уроки Photoshop 1','Добавление контента к ячейке 1'),
('2','Уроки Photoshop 2','Добавление контента к ячейке 2'),
('3','Уроки Photoshop 3','Добавление контента к ячейке 3'),
('4','Уроки Photoshop 4','Добавление контента к ячейке 4'),
('5','Уроки Photoshop 5','Добавление контента к ячейке 5')
|
В итоге содержимое поля table_1 Field 3 должно быть
Содержимое контента 1 Добавление контента к ячейке 1
Содержимое контента 2 Добавление контента к ячейке 2
Содержимое контента 3 Добавление контента к ячейке 3
Содержимое контента 4 Добавление контента к ячейке 4
Содержимое контента 5 Добавление контента к ячейке 5
Как это можно сделать не подскажете? | |
|
|
|
|
|
|
|
для: pautina
(04.02.2012 в 11:31)
| | Неужели никто не знает ответ? | |
|
|
|
|
|
|
|
для: pautina
(05.02.2012 в 08:30)
| | Привет.
Сначала поправил ваши запросы:
CREATE TABLE IF NOT EXISTS table_1 (
`ID` int(11),
`Field 1` VARCHAR(255),
`Field 2` VARCHAR(255),
`Field 3` longtext) TYPE=MyISAM DEFAULT CHARSET=utf8;
INSERT IGNORE INTO table_1 (`ID`,`Field_1`,`Field_2`,`Field_3`) VALUES
(1,'Уроки Photoshop 1','Рубрика: Эффекты 1','Содержимое контента 1'),
(2,'Уроки Photoshop 2','Рубрика: Эффекты 2','Содержимое контента 2'),
(3,'Уроки Photoshop 3','Рубрика: Эффекты 3','Содержимое контента 3'),
(4,'Уроки Photoshop 4','Рубрика: Эффекты 4','Содержимое контента 4'),
(5,'Уроки Photoshop 5','Рубрика: Эффекты 5','Содержимое контента 5')
CREATE TABLE IF NOT EXISTS table_2 (
`ID` int(11),
`Field 1` VARCHAR(255),
`Field 2` longtext) TYPE=MyISAM DEFAULT CHARSET=utf8;
INSERT IGNORE INTO table_2 (`ID`,`Field_1`,`Field_2`) VALUES
(1,'Уроки Photoshop 1','Добавление контента к ячейке 1'),
(2,'Уроки Photoshop 2','Добавление контента к ячейке 2'),
(3,'Уроки Photoshop 3','Добавление контента к ячейке 3'),
(4,'Уроки Photoshop 4','Добавление контента к ячейке 4'),
(5,'Уроки Photoshop 5','Добавление контента к ячейке 5')
|
Потом написал маленький скриптик, как мог:
$query = mysql_query("SELECT ID, Field_2 FROM table_2 ORDER BY ID");
while($data=mysql_fetch_array($query))
{
$data2=mysql_fetch_array(mysql_query("SELECT Field_3 FROM table_1 WHERE ID=".$data[ID]));
$new=$data2[Field_3].$data[Field_2];
mysql_query("UPDATE table_1 SET Field_3 = '".$new."' WHERE ID=".$data['ID']);
}
echo "Выполнено!";
|
PS. Хотя запросов будет много, но судя по вашему вопросу, у вас мало записей, поэтому злоупотребил запросами. | |
|
|
|
|
|
|
|
для: nmahkamov
(05.02.2012 в 11:08)
| | Немного подкорректировал скрипт
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = mysql_query("SELECT ID, Field_2 FROM table_2 ORDER BY ID");
$data = mysql_query($query);
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($data))
{
while($date_2 = mysql_fetch_assoc($data)) ;
{
$data2=mysql_fetch_array(mysql_query("SELECT Field_3 FROM table_1 WHERE ID=".$data[ID]));
$new=$data2[Field_3].$data[Field_2];
mysql_query("UPDATE table_1 SET Field_3 = '".$new."' WHERE ID=".$data['ID']);
}
echo "Выполнено!";
}
?>
|
Но контент не добавляется
где то здесь с date нужно копать
while($date_2 = mysql_fetch_assoc($data)) ;
{
$data2=mysql_fetch_array(mysql_query("SELECT Field_3 FROM table_1 WHERE ID=".$data[ID]));
$new=$data2[Field_3].$data[Field_2];
mysql_query("UPDATE table_1 SET Field_3 = '".$new."' WHERE ID=".$data['ID']);
}
Как исправить можно? | |
|
|
|
|
|
|
|
для: pautina
(06.02.2012 в 06:14)
| | Сейчас скрипт имеет такой код
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = mysql_query("SELECT ID, Field_2 FROM table_2 ORDER BY ID");
$data = mysql_query($query);
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($data))
{
//$query = mysql_query("SELECT ID, Field_2 FROM table_2 ORDER BY ID");
while($data_2=mysql_fetch_array($data));
{
$data2=mysql_fetch_array(mysql_query("SELECT Field_3 FROM table_1 WHERE ID=".$data_2[ID]));
$new=$data2[Field_3].$data_2[Field_2];
mysql_query("UPDATE table_1 SET Field_3 = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
}
?>
|
Выходит Ошибка выполнения запроса - Query was empty
ни посмотрите код? | |
|
|
|
|
|
|
|
для: pautina
(06.02.2012 в 15:26)
| | Вот итоговый код:
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("test");
$data = mysql_query("SELECT ID, Field_2 FROM table_2 ORDER BY ID") or die(mysql_error());
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />");
while($data_2=mysql_fetch_array($data))
{
$query=mysql_query("SELECT Field_3 FROM table_1 WHERE ID=".$data_2[ID]);
$data2=mysql_fetch_array($query);
$new=$data2[Field_3].$data_2[Field_2];
mysql_query("UPDATE table_1 SET Field_3 = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
|
| |
|
|
|
|
|
|
|
для: nmahkamov
(06.02.2012 в 21:09)
| | Скрипт сейчас такой
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal");
$data = mysql_query("SELECT ID, Field 2 FROM table_2 ORDER BY ID") or die(mysql_error());
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />");
while($data_2=mysql_fetch_array($data))
{
$query=mysql_query("SELECT Field_3 FROM table_1 WHERE ID=".$data_2[ID]);
$data2=mysql_fetch_array($query);
$new=$data2[Field_3].$data_2[Field_2];
mysql_query("UPDATE table_1 SET Field_3 = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
?>
|
Выходит ошибка
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 '2 FROM table_2 ORDER BY ID' at line 1 | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 06:06)
| | Исправьте вот этот участок:
Не Field 2, а Field_2. Забыли нижнюю черту. | |
|
|
|
|
|
|
|
для: nmahkamov
(07.02.2012 в 08:05)
| | Это же название поля, а у меня поле в таблице под именем Field 2
Сейчас скрипт имеет такой код
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal");
$data = mysql_query("SELECT ID, Field 2 FROM table_2 ORDER BY ID") or die(mysql_error());
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />");
while($data_2=mysql_fetch_array($data))
{
$query=mysql_query("SELECT Field 3 FROM table_1 WHERE ID=".$data_2[ID]);
$data2=mysql_fetch_array($query);
$new=$data2['Field 3'].$data_2['Field 2']; // Объединение строк
mysql_query("UPDATE table_1 SET Field 3 = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
?>
|
Выходит это сообщение
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 '2 FROM table_2 ORDER BY ID' at line 1 | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 08:11)
| | поля таблицы берите в запросе в кавычки `Field 3` | |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 13:53)
| | Field 3 записал в кавычки
сейчас код такой
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal");
$data = mysql_query("SELECT ID, Field 2 FROM table_2 ORDER BY ID") or die(mysql_error());
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />");
while($data_2=mysql_fetch_array($data))
{
$query=mysql_query("SELECT Field 3 FROM table_1 WHERE ID=".$data_2[ID]);
$data2=mysql_fetch_array($query);
$new=$data2['Field 3'].$data_2['Field 2']; // Объединение строк
mysql_query("UPDATE table_1 SET 'Field 3' = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
?>
|
Может в синтаксисе этой строки ещё что то с кавычками?
mysql_query("UPDATE table_1 SET 'Field 3' = '".$new."' WHERE ID=".$data_2['ID']);
|
Ни посмотрите? | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 14:15)
| | вы во всех запросах берите все поля и названия таблиц в кавычки, только не в такие, какие Вы взяли, а какие я Вам привел - косые одинарные (апостроф) - обычно там где русская буква Ё на клавиатуре... | |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 14:20)
| | Сейчас код такой
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal");
$data = mysql_query("SELECT 'ID', 'Field 2' FROM 'table_2' ORDER BY ID") or die(mysql_error());
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />");
while($data_2=mysql_fetch_array($data))
{
$query=mysql_query("SELECT 'Field 3' FROM 'table_1' WHERE ID=".$data_2[ID]);
$data2=mysql_fetch_array($query);
$new=$data2['Field 3'].$data_2['Field 2']; // Объединение строк
mysql_query("UPDATE 'table_1' SET 'Field 3' = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
?>
|
Но где то всё равно ошибка есть | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 14:28)
| | Вы букву Ё нашли на клавиатуре? вот ту одинарную кавычку и используйте!!! | |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 14:31)
| | Я уже подправил извиняюсь
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal");
$data = mysql_query("SELECT `ID`, `Field 2` FROM `table_2` ORDER BY ID") or die(mysql_error());
if(!$data) exit("Ошибка выполнения запроса - ".mysql_error()."<br />");
while($data_2=mysql_fetch_array($data))
{
$query=mysql_query("SELECT `Field 3` FROM `table_1` WHERE ID=".$data_2[ID]);
$data2=mysql_fetch_array($query);
$new=$data2['Field 3'].$data_2['Field 2']; // Объединение строк
mysql_query("UPDATE `table_1` SET `Field 3` = '".$new."' WHERE ID=".$data_2['ID']);
}
echo "Выполнено!";
?>
|
Запрос выполняется
а вот в этой строке
mysql_query("UPDATE `table_1` SET `Field 3` = '".$new."' WHERE ID=".$data_2['ID']);
|
перед закрытием скобки двойная кавычка не нужна | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 14:32)
| | а у Вас в получаемых значениях $new нет одинарных прямых кавычек? т.е. в $data_2['Field 2'] и $data2['Field 3'] есть одинарные кавычки? | |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 14:39)
| | хорошо а как сделать пробел перед добавляемым полем. | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 14:44)
| | добавить пробел | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 14:32)
| | попробуйте вот так:
mysql_query("UPDATE `table_1` SET `Field 3` = '".mysql_real_escape_string($new)."' WHERE ID=".$data_2['ID']);
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 14:57)
| | при использовании вашей строки пробел перед добавляемым полем не ставится
Содержимое контента 1Добавление контента к ячейке 1 | |
|
|
|
|
|
|
|
для: pautina
(07.02.2012 в 17:43)
| | $new=$data2['Field 3']." ".$data_2['Field 2']; | |
|
|
|
|
|
|
|
для: Lotanaen
(07.02.2012 в 17:50)
| | Да спасибо большое всё работает. | |
|
|
|