جابجایی دو رکورد

سلام . واسه جابجا کردن 2 رکورد چه راهی پیشنهاد می کنید ؟
یعنی می خوام رکورد شماره 3 بشه 4 و رکورد 4 بشه رکورد 3 ، در واقع رکورد بالا بیاد پایین و پایینی بره بالا با زدن یک کلید . ممنون می شم اگه راهنمایی کنید . :rose:
 

Omid PLUS

Member
سلام . واسه جابجا کردن 2 رکورد چه راهی پیشنهاد می کنید ؟
یعنی می خوام رکورد شماره 3 بشه 4 و رکورد 4 بشه رکورد 3 ، در واقع رکورد بالا بیاد پایین و پایینی بره بالا با زدن یک کلید . ممنون می شم اگه راهنمایی کنید . :rose:

منظورت رو یه خرده دقیق تر بگو، اگه منظورت اینه که مقدار کل یک row توی MySQL با مقدار یک row دیگه کامل عوض بشه، میتونی از این استفاده کنی:rose:

PHP:
$result=mysql_query("SELECT * FROM `table` WHERE ID='$id1' OR ID='$id2'");
$row1=mysql_fetch_row($result);
$row2=mysql_fetch_array($result);
mysql_query("DELETE FROM `table` WHERE ID='$id1' OR ID='$id2'");
$q1='';
$q2='';
for($i=1;$i<count($row1);$i++)
{
	$q1=",'".$row1[$i]."'";
	$q2=",'".$row2[$i]."'";
}
mysql_query("INSERT INTO `table` VALUES('$id2'".$q1.")");
mysql_query("INSERT INTO `table` VALUES('$id1'".$q2.")");

اگر هم منظورت چیزه دیگه ای بوده بگو که یه کد دیگه برات بنویسم:rose::)
 

25mordad

Member
اگر منظورت همینه هست که امید پلاس کدشو نوشته شاید بهتر باشه که به جای اینکه 2 بار فچ کنی و دلیت کنی و 2 بار اینسرت کنی فقط 3 بار آپدیت کنی .. البته فکر نمی کنم که منظورت این باشه ... برای چی می خوای؟
 
سلام . ممنون بابت جواب . واسه جابجایی موقعیت عمودی بلوکهای سایت می خوام .
به جای اینکه 2 بار فچ کنی و دلیت کنی و 2 بار اینسرت کنی فقط 3 بار آپدیت کنی
می شه یه کم بیشتر توضیح بدبد ؟ ممنون
 

Omid PLUS

Member
سلام . ممنون بابت جواب . واسه جابجایی موقعیت عمودی بلوکهای سایت می خوام .

می شه یه کم بیشتر توضیح بدبد ؟ ممنون

این روش رو منظورشون هست::rose:

PHP:
$rand=rand(100000,999999)
mysql_query("UPDATE `table` SET ID='$rand' WHERE ID='$id1'"); 
mysql_query("UPDATE `table` SET ID='$id1' WHERE ID='$id2'"); 
mysql_query("UPDATE `table` SET ID='$id2' WHERE ID='$rand'");

البته استفاده از این رو وقتی داده هات خیلی زیاد هستند (بیشتر از 100000) رو بهت توصیه نمی کنم.
البته اگه بیشتر هم شد اون عدد ها رو جوری تغییر بده که توی اون Range هیچ داده ای نداشته باشی.:wink:
ولی در کل استفاده از روش اول رو بهت توصیه میکنم:)
 

Webber

Well-Known Member
سلام
شما می تونی یه فیلد ردیف برای رکوردها اضافه کنی( مثلا order ) و فقط مقدار این رو تغییر بدید.
 
شما می تونی یه فیلد ردیف برای رکوردها اضافه کنی( مثلا order ) و فقط مقدار این رو تغییر بدید.
چنین فیلدی وجود داره . اما نمی تونم مقدار دو فیلد رو باهم عوض کنم . یعنی 2 بشه 3 و 3 بشه 2 .
 

جدیدترین ارسال ها

بالا