|
|
|
|
|
для: asptema
(12.12.2009 в 22:24)
| | Почему бы не сделать маааленькую табличку, с одной единственной строкой, и одним единственным полем типа LONGTEXT?
И засунуть в эту ячейку весь дамп целевой базы, безо всякой сериализации. | |
|
|
|
|
|
|
|
для: Nekifrovv
(26.09.2009 в 13:34)
| | а почему нельзя сериализовать массив и засунуть его в базу?
а потом десериализовать и брать его элементы через [ ] ??? | |
|
|
|
|
|
|
|
для: Trianon
(26.09.2009 в 12:33)
| | В общем хотел сделать по-другому но пришлось сделать, используя do while.
Запятые поставил сразу после закрытия скобки, последнюю стер, т.к. в предыдущем случае запятая ставилась после каждого пробела.
Всем спасибо, за помощь! | |
|
|
|
|
|
|
|
для: Nekifrovv
(26.09.2009 в 11:52)
| | Так и что? Вы хотите сказать, что это из-за многострочности ?
однострочный инсерт точно также себя поведет.
Как будет выглядел бы текст корректного SQL-запроса? | |
|
|
|
|
|
|
|
для: Nekifrovv
(26.09.2009 в 11:52)
| | $row = mysql_fetch_array($res);
ну так в данном случае $row же не многомерный массив!
давайте по порядку:
$res = mysql_query("SELECT * FROM newtable");
$row = mysql_fetch_array($res); //- вы взяли только одну запись, а не все
//в этом случае циклами и многострочными инсертами даже не пахнет:
$ins="({$row['pervoe']},{$row['vtoroe']},{$row['tretie']},{$row['chetvertoe']})"; // и все!
|
возможно, вам надо так:
$ins="";
$res = mysql_query("SELECT * FROM newtable");
while($row = mysql_fetch_array($res)){
if($ins!=="")$ins.=",";
$ins.="({$row['pervoe']},{$row['vtoroe']},{$row['tretie']},{$row['chetvertoe']})";
}
|
? | |
|
|
|
|
|
|
|
для: Trianon
(26.09.2009 в 11:25)
| | Ок, тогда сначала. Создаю таблицу newtable.
CREATE TABLE `newtable` (
`pervoe` int(10) NOT NULL auto_increment,
`vtoroe` varchar(10) NOT NULL,
`tretie` varchar(10) NOT NULL,
`chetvertoe` varchar(10) NOT NULL,
PRIMARY KEY (`pervoe`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;
INSERT INTO `newtable` VALUES (1, 'значение 1', 'значение 2', 'значение 3');
INSERT INTO `newtable` VALUES (2, 'значение 4', 'значение 5', 'значение 6');
Далее хочу применить многострочный инсерт, а значения в скобках формируются не так как надо (
<?
include ("db.php");
$res = mysql_query("SELECT * FROM newtable");
$row = mysql_fetch_array($res);
$ins="";
foreach($row as $val){
if($ins!="")$ins.=',';
$ins.="({$val['pervoe']},{$val['vtoroe']},{$val['tretie']},{$val['chetvertoe']})";
}
echo $ins;
?>
Выдает:
(1,1,1,1),(1,1,1,1),(з,з,з,з),(з,з,з,з),(з,з,з,з),(з,з,з,з),(з,з,з,з),(з,з,з,з) | |
|
|
|
|
|
|
|
для: Nekifrovv
(26.09.2009 в 11:12)
| | ну так "чтоТоТам" - это и есть id, field1, field2, field3
действительно, покажите как сделали вы... | |
|
|
|
|
|
|
|
для: Nekifrovv
(26.09.2009 в 10:12)
| | > Что бы я туда не написал - все равно одно и то же получается
Пока что Вы ни пишете ничего.
Ни одной Вашей строки кода я не увидел.
Представьте хоть какой-то вариант - тогда можно будет хотя бы от чего-то отттолкнуться, ошибки разобрать. | |
|
|
|
|
|
|
|
для: ride
(26.09.2009 в 10:50)
| | Должен быть как во втором варианте, где фиелды это название столбцов. | |
|
|
|
|
|
|
|
для: Nekifrovv
(26.09.2009 в 10:39)
| |
//то есть, у вас такой массив
$arr=array(
0=>array('1', 'b', 'c', 'd'),
1=>array('2', 'z', 'x', 'c'),
);
//а не такой
$arr=array(
0=>array('id'=>'1', 'field1'=>'b', 'field2'=>'c', 'field3'=>'d'),
1=>array('id'=>'2', 'field1'=>'z', 'field2'=>'x', 'field3'=>'c'),
);
|
? | |
|
|
|
|