• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    תפעול תור בשרת

    פורום PHP
    1
    4
    100
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ע
      עידו נערך לאחרונה על ידי

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

      השרת שולח בקשה ומקבל בתגובה מערך של שמות ואיפה הם נמצאים (צריך גם שרק מי שבמקום מסוים יהיה בתור).

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • ע
        עידו נערך לאחרונה על ידי

        gpt הציע את זה

        <?php
        define('QUEUE_FILE', 'queue.json'); // קובץ שישמור את התור
        
        // פונקציה לקרוא את התור מהקובץ
        function loadQueue() {
            if (!file_exists(QUEUE_FILE)) {
                file_put_contents(QUEUE_FILE, json_encode([]));
            }
            return json_decode(file_get_contents(QUEUE_FILE), true);
        }
        
        // פונקציה לשמור את התור לקובץ
        function saveQueue($queue) {
            file_put_contents(QUEUE_FILE, json_encode($queue, JSON_PRETTY_PRINT));
        }
        
        // פונקציה לעדכן את התור
        function updateQueue($newData, $validLocation) {
            $queue = loadQueue(); // קריאת התור הקיים
        
            // סינון האנשים שרק מהמיקום הרצוי
            $filteredData = array_filter($newData, function ($person) use ($validLocation) {
                return $person['location'] === $validLocation;
            });
        
            // יצירת רשימה של שמות בלבד
            $newNames = array_column($filteredData, 'name');
        
            // שמירה על סדר: מי שכבר בתור - נשאר
            $updatedQueue = array_values(array_intersect($queue, $newNames));
        
            // הוספת חדשים לסוף
            foreach ($newNames as $name) {
                if (!in_array($name, $updatedQueue)) {
                    $updatedQueue[] = $name;
                }
            }
        
            saveQueue($updatedQueue); // שמירת התור המעודכן
            return $updatedQueue;
        }
        
        // קבלת הנתונים מהשרת (הדמיה של POST)
        $dataFromServer = json_decode(file_get_contents('php://input'), true);
        
        // רק מי שנמצא במקום 6 ייכנס לתור
        $validLocation = "6 "; // עם רווח אחרי ה-6 כפי שביקשת
        
        // עדכון התור והחזרת התוצאה
        $resultQueue = updateQueue($dataFromServer, $validLocation);
        echo json_encode($resultQueue);
        ?>
        
        

        אבל אני לא סומך עליו, עברתי איתו הרבה תלאות, גם הצלחות אבל גם תלאות...

        תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • ע
          עידו נערך לאחרונה על ידי

          יש למישהו חוות דעת על הקוד הנ"ל?

          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • ע
            עידו נערך לאחרונה על ידי

            אין עליכם

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • פוסט ראשון
              פוסט אחרון