Копиране за записи

DirectX

Registered
Значи в една таблица имам записи и на всеки от записите последното поле е годината (пр. 2010/2011) обаче искам всичките тия записи да ги копирам но с година 2011/2012, в същата таблица. :) Някаква идея как ще стане това ? :) Ако не е ясно пак ще обеснявам
 
Ако таблицата не е много голяма, взимаш цялото съдържание, и след това вмъкваш ред по ред с новата година.

PHP:
$sqlRes = mysql_query("select * from table_name") or die(mysql_error());

while($sqlData = mysql_fetch_array($sqlRes)){
     mysql_query("insert into table_name values (NULL, '$sqlData[name]', '$sqlData[description]', '2013') ") or die(mysql_error());
}
 
Ако последното поле, за което говориш се казва пр. year, може да направиш една такава врътка
[sql]INSERT INTO таблицата
SELECT NULL,полета,полета,(year + 1) FROM таблицата[/sql]
като съответно замениш таблицата с твоята такава, и да си селектнеш полетата, които ти трябват.
П.П. Ако имаш PRIMARY KEY в таблицата, остави след селект-а NULL, а другите полета си ги изброи :idea:
 
ами има долу-горе около 300-350 записа, но може и повече да са - тогава 1-вият вариант, ще върши ли работа ? :)
 
Всеки вариант ще ти свърши работа. Аз не бях сигурен за INSERT into SELECT from дали може да е върху една и съща таблица, това е може би оптималния вариант.
 
пробвах и по 2-та начина - едно и също;
прилагам кода от 1-вия начин, като грешката е: Query was empty
Грешка: 72

edit: сега видях, че прави нови записи с нови id-та, но другата информация не я прехвърля ...

PHP:
<form method="post">
<input name="submit_st_g" type="submit" class="button-normal" id="button" value="kopirane" />
</form>
<?php 
if(isset($_POST['submit_st_g'])){
	$sqlRes = mysql_query("select * from zemq") or die(mysql_error());
	while($sqlData = mysql_fetch_array($sqlRes)){
     mysql_query("insert into zemq (`id`, `s_id`, `nomer_imot`, `zemlishte`, `plosht`, `mestnost`, `renta_kg`, `kultura`, `zaqvka`, `renta`, `obraboteno`, `belejka`, `total`, `st_g`) values (NULL, '$sqlData[s_id]', '$sqlData[nomer_imot]', '$sqlData[zemlishte]', '$sqlData[plosht]', '$sqlData[mestnost]', '$sqlData[renta_kg]', '$sqlData[kultura]', '$sqlData[zaqvka]', '$sqlData[renta]', '$sqlData[obraboteno]', '$sqlData[belejka]', '$sqlData[total]', '2011/2012') ") or die(mysql_error());
}
$result = mysql_query($sql)or die(mysql_error()."<br />Грешка: ".__LINE__);
if($result == true){
echo '<meta http-equiv="refresh" content="1;url=informaciq.php?id='.$s_id.'">';	
echo "Моля почакайте страницата да презареди...";
}
else {
echo "възникна грешка..";
}
}
?>
 
Тоя ред за какво ти е?

Код:
$result = mysql_query($sql)or die(mysql_error()."<br />Грешка: ".__LINE__);

след като заявката ти се изпълнява вътре в while цикъла? Точно там става "копирането" и сигурно вече са копирани, след като скрипта се изпълнява без грешка докато стигне този излишен ред и тази излишна заявка.
 
такаааааа - всичко работи, вкл. и копирането, грешката ми беше че като съм правил много опити те са се копирали обаче се изместват самите записи назад ... :!: само не разбирам, защо въпреки успешно копираните записи ми изкарва, че заявката е празна
 
Грешката е в реда, който ти показах. Той реално не прави нищо. Там извикваш mysql_query функцията и предаваш като параметър $sql което би трябвало да съдържа заявка на sql езика, но реално никъде не си задал стойност на променливата $sql и там се появява грешка. То е същото като да направиш

Код:
mysql_query() or die(mysql_error())

                   ^ заявката е празна
 
дааааам :)

направих го така if($sql == true) като sql e insert into ....


exeс към тебе отива съпортчето : )))

мерси много :P
 

Back
Горе