ABA


"כיצד מומלץ לעשות סידור אישי של מוצרים ? (PHP)"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #14244 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14244
FireAngel

דרג אמינות חבר זה
   00:03   31.07.08   
אל הפורום  
  כיצד מומלץ לעשות סידור אישי של מוצרים ? (PHP)  
 
   אתנסח טוב יותר, בכותרת אין מספיק מקום לרשום.

בניתי מערכת מוצרים בשפת PHP - אין הרבה מוצרים, מספר דו-ספרתי קטן יחסית.
אני מעוניין לעשות אפשרות שהלקוח יוכל לבחור את הסדר האישי שלו של התצוגה.

אני רוצה לעשות ב"שיטת החיצים":
כל המוצרים מסודרים בטבלה, כאשר כל מספר סידורי של שורה מייצג את המספר בסדר, למשל: מוצר שמופיע בשורה ראשונה יופיע ראשון וכך הלאה.
באותה שורה בטבלה יהיו 2 חיצים: אחד מופנה כלפי מעלה ואחד כלפי מטה.
כאשר ילחצו על המוצר כלפי מעלה הוא יהיה מקום אחד קודם, למשל אם קודם הופיע 5 כעת יופיע 4. באותו אופן לכלפי מטה.

איך מומלץ ליישם את זה?
AJAX (בלי רענון) או לשלוח בכל לחיצה את הדף מחדש?

איך אני אמור לתכנן את זה מבחינת שדות במסד ויישום של עדכון השדות האלה.
(הרי שינוי של אחד גורר שינוי של שאר המוצרים).

סליחה שעשיתי סלט :]

תודה !


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  על עוגיה או בדטאבייס? Kent Net 31.07.08 00:09 1
     ואיך מומלץ לעשות? AJAX או רגיל עם משתני GET? FireAngel 31.07.08 09:52 3
  .. little O man 31.07.08 08:55 2
  תיצור שדה שנקרא Order בטבלה של המוצרים akoka 31.07.08 10:02 4
  הנה פונקציה שאולי תעזור לך עם זה: Dotan  31.07.08 13:21 5
     לא הבנתי את השורה של JS AJAX... FireAngel 01.08.08 01:43 13
  :| Dotan  31.07.08 13:22 6
     יפה בדיוק מה שהתכוונתי :P אפשר אפילו להכניס את 2 akoka 31.07.08 13:24 7
         call?? djME 31.07.08 20:23 8
             איך אתה קורא לפרוצדורות? akoka 31.07.08 20:38 9
                 וואי וואי djME 31.07.08 20:50 10
                     חח הלכתי כבר לאתר של MYSQL akoka 31.07.08 21:00 11
                         חחח djME 01.08.08 00:14 12
                             חח האמת לא יצא לי ,אבל זה נשמע טוב אז למה לא להמליץ. akoka 01.08.08 12:29 14

       
Kent Net
חבר מתאריך 18.3.02
2359 הודעות, דרג אמינות חבר זה
   00:09   31.07.08   
אל הפורום  
  1. על עוגיה או בדטאבייס?  
בתגובה להודעה מספר 0
 
   בכל מקרה העיקרון זהה
יוצרים שדה של סידור
מסדרים באופן ראשוני את כל המוצרים על פי סדר היררכי (מ 1 עד 100 נגיד)

כעת
בלחיצה למשל על כפתור למעלה של פריט מס' 5
שדה הסידור יהיה כעת 4
ו4 המקורי יהיה 5

(אם בעוגייה אז פשוט לשנות את הערכים במערך...)

זה הכל.

רוצים גם אתם חתימת פז"ם ? https://.net/


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

דרג אמינות חבר זה
   09:52   31.07.08   
אל הפורום  
  3. ואיך מומלץ לעשות? AJAX או רגיל עם משתני GET?  
בתגובה להודעה מספר 1
 
   כל פעם שלוחצים על כפתור יהיה נגיד:
page.php?id=25&pos=4

או כדאי לעשות עם AJAX כל פעם כשלוחצים טוענים מחדש את הטבלה ואת הנתונים?

יש לך קוד לדוגמה אגב?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
little O man
חבר מתאריך 27.5.02
1109 הודעות, דרג אמינות חבר זה
   08:55   31.07.08   
אל הפורום  
  2. ..  
בתגובה להודעה מספר 0
 
   אפשר ליישם את זה בעזרת JS, ושליחת נתונים לקובץ (AJAX) לעדכון הסדר.
אם אתה משתמש בDB, אז אתה כמובן יכול לעשות שמי שמוגדר לו ראשון יהיה 1, ואז כל מקום אחריו יהיה המספר הבא.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   10:02   31.07.08   
אל הפורום  
  4. תיצור שדה שנקרא Order בטבלה של המוצרים  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 31.07.08 בשעה 10:05 בברכה, akoka
 
הוא יכיל את הסדר של המוצרים בדף ,סדר מספרי אני מניח.

ובשאילתא שאתה שולך למסד אתה צריך לשלוח ככה לדעתי

products.php?pid=321312&order=1&switch=321323

order = המיקום של המוצר שנלחץ

switch = עם איזה מוצר להחליף אותו בדרך כלל זה שבא אחריו.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dotan  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.10.03
2849 הודעות, 2 פידבק, 4 נקודות
   13:21   31.07.08   
אל הפורום  
  5. הנה פונקציה שאולי תעזור לך עם זה:  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 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;
}
}
}
}

אתה משתמש ככה:


ChnagePlace(6, 1);

ככה שאתה שולח את ה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.6

SET 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 אתה שולח ומחזיר בעצם את הסדר החדש אחרי השינוי :}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

דרג אמינות חבר זה
   01:43   01.08.08   
אל הפורום  
  13. לא הבנתי את השורה של JS AJAX...  
בתגובה להודעה מספר 5
 
   איבדתי אותך באמצע.

אגב, תודה !!!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dotan  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.10.03
2849 הודעות, 2 פידבק, 4 נקודות
   13:22   31.07.08   
אל הפורום  
  6. :|  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 31.07.08 בשעה 13:23 בברכה, Dotan
 
בע נשלח פעמיים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   13:24   31.07.08   
אל הפורום  
  7. יפה בדיוק מה שהתכוונתי :P אפשר אפילו להכניס את 2  
בתגובה להודעה מספר 6
 
   השאילתות לפרוצדורה שתקבל את הפרמטרים ,ואז להריץ אותה עם CALL יותר נוח.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
djME

דרג אמינות חבר זה
   20:23   31.07.08   
אל הפורום  
  8. call??  
בתגובה להודעה מספר 7
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   20:38   31.07.08   
אל הפורום  
  9. איך אתה קורא לפרוצדורות?  
בתגובה להודעה מספר 8
 
  

CALL PROC(PARAM1,PARAM2)

לא מכיר דרך אחרת:|


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
djME

דרג אמינות חבר זה
   20:50   31.07.08   
אל הפורום  
  10. וואי וואי  
בתגובה להודעה מספר 9
 
   כניראה אני באמת עייף
לא שמתי לב שאתה מדבר על DB


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   21:00   31.07.08   
אל הפורום  
  11. חח הלכתי כבר לאתר של MYSQL  
בתגובה להודעה מספר 10
 
   אמרתי לעצמי מה עובר עלי יש מצב שטעיתי חח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
djME

דרג אמינות חבר זה
   00:14   01.08.08   
אל הפורום  
  12. חחח  
בתגובה להודעה מספר 11
 
   אגב אתה בכלל עובד עם פרוצדורות ב mysql?
האמ לא יצא לי לעבוד איתם עדיין


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   12:29   01.08.08   
אל הפורום  
  14. חח האמת לא יצא לי ,אבל זה נשמע טוב אז למה לא להמליץ.  
בתגובה להודעה מספר 12
 
  

סתם האמת אממ למדתי לעבוד איתם ממש מזמן ,אבל נדיר שיוצא להשתמש בהם בכלל.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net