ערכתי לאחרונה בתאריך 31.07.08 בשעה 13:23 בברכה, Dotan
function ChnagePlace($rowId, $newPlace, $idRow="id", $placeRow="place", $table="testing") { // id and place both need to be unique! $query = mysql_query("SELECT * FROM ".$table." WHERE ".$idRow."=".$rowId." LIMIT 1"); if(mysql_num_rows($query) == 0) { return false; }else{ $info = mysql_fetch_array($query); if($info["".$placeRow.""] == $newPlace) { return true; }else{ $queryCurrentInNewPlace = mysql_query("SELECT * FROM ".$table." WHERE ".$placeRow."=".$newPlace." LIMIT 1"); if(mysql_num_rows($queryCurrentInNewPlace) == 0) { mysql_query("UPDATE ".$table." SET ".$placeRow."=".$newPlace." WHERE ".$idRow."=".$rowId.""); return true; }else{ $currentInPlaceInfo = mysql_fetch_array($queryCurrentInNewPlace); ChnagePlace($currentInPlaceInfo["".$idRow.""], $currentInPlaceInfo["".$placeRow.""]+1, $idRow, $placeRow, $table); mysql_query("UPDATE ".$table." SET ".$placeRow."=".$newPlace." WHERE ".$idRow."=".$rowId.""); return true; } } } }
|
אתה משתמש ככה:
ככה שאתה שולח את הID של המוצר, ואת המיקום החדש שלו ביחס לכולם...
אם אתה צריך גם את הטבלה שהשתמשתי בה, אז הנה הEXPORT שלה:
-- phpMyAdmin SQL Dump -- version 2.11.6 -- http://www.phpmyadmin.net -- -- מארח: localhost -- זמן ייצור: יולי 31, 2008 at 01:20 PM -- גרסת שרת: 5.0.51 -- גרסת PHP: 5.2.6SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- מאגר נתונים: `testing_order` -- -- -------------------------------------------------------- -- -- מבנה טבלה עבור טבלה `testing` -- CREATE TABLE `testing` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, `place` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; -- -- הוצאת מידע עבור טבלה `testing` -- INSERT INTO `testing` (`id`, `name`, `place`) VALUES (1, 'dotan', 2), (2, 'name2', 4), (3, 'name3', 5), (4, 'name4', 6), (5, 'name5', 7), (6, 'name6', 1), (7, 'name7', 3);
|
אתה יכול לעשות בעצם רשימה של מוצרים, ובJS לעשות אפשרות לבחור שניים מהם, אחרי הבחירה, אתה שולח את הID של המוצר הראשון שנבחר, ואת המקום הנוכחי של המוצר השני, ואז בAJAX אתה שולח ומחזיר בעצם את הסדר החדש אחרי השינוי :}