• 24-12-2017, 00:23:11
    #1
    Merhabalar herkese ;
    geliştirdiğim şirket içi uygulamamızda çözemediğim bir algoritma var.Bildiğimiz takvim fakat bu takvim bulunduğu günün verilerini alıcak.bu verilerinin atölyedeki teknisyenlerinin adının altına saatlere göre gelip oturucak.Şimdi bi tasarı kurdum aklımda ama bir türlü nereyi döngüye alıcam sql sorgusu ne şekilde olucak açıkcası beynim durdu.Yardımcı olursanız çok mutlu olurum.

    http://prntscr.com/hrj25y
  • 24-12-2017, 11:55:37
    #2
    Üyeliği durduruldu
    Loren adlı üyeden alıntı: mesajı görüntüle
    Merhabalar herkese ;
    geliştirdiğim şirket içi uygulamamızda çözemediğim bir algoritma var.Bildiğimiz takvim fakat bu takvim bulunduğu günün verilerini alıcak.bu verilerinin atölyedeki teknisyenlerinin adının altına saatlere göre gelip oturucak.Şimdi bi tasarı kurdum aklımda ama bir türlü nereyi döngüye alıcam sql sorgusu ne şekilde olucak açıkcası beynim durdu.Yardımcı olursanız çok mutlu olurum.

    http://prntscr.com/hrj25y
  • 24-12-2017, 11:59:08
    #3
    yazilimajansi adlı üyeden alıntı: mesajı görüntüle
    öncelikle cevabınız için teşekkürler tamamdır mantık doğru fakat yarın birgün yeni teknisyen geldi ve yazılımcı değişti.yeni teknisyen eklendiği zaman tekrardan sql kodlarının değişmesi gerekiyor böyle tam otomatik br döngüye sokmak istedim
  • 24-12-2017, 12:06:37
    #4
    Üyeliği durduruldu
    Loren adlı üyeden alıntı: mesajı görüntüle
    öncelikle cevabınız için teşekkürler tamamdır mantık doğru fakat yarın birgün yeni teknisyen geldi ve yazılımcı değişti.yeni teknisyen eklendiği zaman tekrardan sql kodlarının değişmesi gerekiyor böyle tam otomatik br döngüye sokmak istedim
    Kodu revize ederek yapabilirsiniz.
    Personeller tablosunu oluşturalım.
    id | personel_adi | birimi dedik mesela
    SELECT a.*, p.*
    FROM atolye AS a
    INNER JOIN personel AS p ON p.id = a.personel_id
    Tablolaştırma tarafında personelleri yan yana eklerken yeni personelin olduğu yerde eğer alanı ile yeni <td> yazdırır devam edersiniz.
  • 24-12-2017, 12:09:08
    #5
    yazilimajansi adlı üyeden alıntı: mesajı görüntüle
    Kodu revize ederek yapabilirsiniz.
    Personeller tablosunu oluşturalım.
    id | personel_adi | birimi dedik mesela
    SELECT a.*, p.*
    FROM atolye AS a
    INNER JOIN personel AS p ON p.id = a.personel_id
    Tablolaştırma tarafında personelleri yan yana eklerken yeni personelin olduğu yerde eğer alanı ile yeni <td> yazdırır devam edersiniz.
    bu seferde personelin ait olduğu dilime göre veri çekerken sıkıntı oluyor aslında biraz kavradım gibi ama tam çıkmadan işin içinden
  • 24-12-2017, 12:14:14
    #6
    Üyeliği durduruldu
    Loren adlı üyeden alıntı: mesajı görüntüle
    bu seferde personelin ait olduğu dilime göre veri çekerken sıkıntı oluyor aslında biraz kavradım gibi ama tam çıkmadan işin içinden
    Personeller gibi saat dilimlerine tablo yaparsanız
    Hatta ben sizin yerinizde olsam yapısını şu şekilde kurarım
    saat_dilimleri için
    id | saat_dilimi_adi | deger
    10 tane saat diliminiz var diyelim. Bunları eklerken veritabanına mesela bir listmenuden
    <option value="1">08:35-09:35</option>
    <option value="2">09:35-10:05</option>
    şeklinde eklerseniz diyelim ki "atolye" tablosuna çağırırkende bu döngü ile çağırırsınız. Join yapmanıza gerek yok while içinde while olabilir.
    Zaman dilimlerim değişmeyecek tablo yapmayayım diyorsanız dizi yapabilirsiniz. Ona göre döktürürsünüz.
    En üstte zaman dilimleri ardından personel ile ilgili atolye tablosuna bağlanmış kod.
    Her zaman dilimi While içinde dönerken onunda içerisinde biraz önceki yapmış olduğumuz kod döner. Ve tam olarak istediğiniz olur hocam.
  • 24-12-2017, 12:19:45
    #7
    yazilimajansi adlı üyeden alıntı: mesajı görüntüle
    Personeller gibi saat dilimlerine tablo yaparsanız
    Hatta ben sizin yerinizde olsam yapısını şu şekilde kurarım
    saat_dilimleri için
    id | saat_dilimi_adi | deger
    10 tane saat diliminiz var diyelim. Bunları eklerken veritabanına mesela bir listmenuden
    <option value="1">08:35-09:35</option>
    <option value="2">09:35-10:05</option>
    şeklinde eklerseniz diyelim ki "atolye" tablosuna çağırırkende bu döngü ile çağırırsınız. Join yapmanıza gerek yok while içinde while olabilir.
    Zaman dilimlerim değişmeyecek tablo yapmayayım diyorsanız dizi yapabilirsiniz. Ona göre döktürürsünüz.
    En üstte zaman dilimleri ardından personel ile ilgili atolye tablosuna bağlanmış kod.
    Her zaman dilimi While içinde dönerken onunda içerisinde biraz önceki yapmış olduğumuz kod döner. Ve tam olarak istediğiniz olur hocam.
    aynen öyle hocam zaten bende öyle düşündüm zaman dlimi şeklinde yapıcam saat aralığı değil anlaşılsın diye öyle yazdım ama dediğiniz mantıklı cevabınız için çok ama çok teşekkür ederim sağolun
  • 24-12-2017, 12:20:24
    #8
    Üyeliği durduruldu
    Loren adlı üyeden alıntı: mesajı görüntüle
    aynen öyle hocam zaten bende öyle düşündüm zaman dlimi şeklinde yapıcam saat aralığı değil anlaşılsın diye öyle yazdım ama dediğiniz mantıklı cevabınız için çok ama çok teşekkür ederim sağolun
    Rica ederim yine takılırsanız istişare ederiz. Kolay gelsin.
  • 24-12-2017, 20:27:52
    #9
    aşağıda fikir vermesi açısından örnek bir uygulama paylaştım. SQL de tutmak istiyorsanız burdaki dizi yapısına uygun tablolar oluşturabilirsiniz. Böyle birşeyi sınıf ile yapmak daha güzel olacaktır

    <?php
    
    $categories = [
        1 => [
                'category'  => 'Test Arıza',
                'user'      => 'İbrahim Kılıçaslan'
        ],
        2 => [
                'category'  => 'Ağır Bakım',
                'user'      => 'Alper Sızar'
        ],
        3 => [
                'category'  => 'Bakım',
                'user'      => 'Sezer Şimşek'
        ],
        4 => [
                'category'  => 'Muhtelif Bakım',
                'user'      => 'Recep Yılmaz'
        ]
    ];
    
    $periods = [
        1 => [
            'time1' => '08:35',
            'time2' => '09:35',
            'text'  => '08:35 - 09:35'
        ],
        2 => [
            'time1' => '09:35',
            'time2' => '10:35',
            'text'  => '09:35 - 10:35'
        ],
        3 => [
            'time1' => '10:35',
            'time2' => '11:35',
            'text'  => '10:35 - 11:35'
        ],
        4 => [
            'time1' => '11:35',
            'time2' => '12:35',
            'text'  => '11:35 - 12:35'
        ],
        5 => [
            'time1' => '12:35',
            'time2' => '13:35',
            'text'  => '12:35 - 13:35'
        ]
    ];
    
    $jobs = [
        1 => [
            'date'      => '2017-12-24',
            'category'  => 1,
            'period'    => 1,
            'text'      => '01 AD 02<br /> Lift No : 2<br /> Sorun : Ses Gelmesi'
        ],
        2 => [
            'date'      => '2017-12-24',
            'category'  => 3,
            'period'    => 3,
            'text'      => '01 AD 02<br /> Lift No : 2<br /> Sorun : Test Sorun'
        ],
        3 => [
            'date'      => '2017-12-24',
            'category'  => 4,
            'period'    => 1,
            'text'      => '01 AD 02<br /> Lift No : 2<br /> Sorun : Ses Geliyor'
        ],
        4 => [
            'date'      => '2017-12-25',
            'category'  => 4,
            'period'    => 1,
            'text'      => '01 AD 02<br /> Lift No : 2<br /> Sorun : Ses Gitmiyor'
        ]
    ];
    
    function now_jobs($jobs) {
        if($jobs['date'] == date('Y-m-d'))
            return true;
        return false;
    }
    
    $now_jobs = array_filter($jobs, 'now_jobs');
    
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <style type="text/css">
        table, td, th{border: 1px solid #ccc;}
    </style>
    </head>
    <body>
    <table width="100%">
        <thead>
            <tr>
                <th></th>
                <?php echo '<th>' . implode(array_column($categories,'category'), '</th><th>') . '</th>' ?>
            </tr>
            <tr>
                <th>Çalışma Saatleri</th>
                <?php echo '<th>' . implode(array_column($categories,'user'), '</th><th>') . '</th>' ?>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($periods as $per_key => $period) { ?>
            <tr>
                <td><?php echo $period['text']; ?></td>
                <?php foreach ($categories as $cat_key => $category) { ?>
                    <td>
                        <?php foreach ($now_jobs as $now_job) { ?>
                            <?php if($now_job['category'] == $per_key && $now_job['date'] == date('Y-m-d') && $now_job['period'] == $cat_key) { ?>
                            <?php echo $now_job['text']; ?>
                            <?php } ?>
                        <?php } ?>
                    </td>
                <?php } ?>
            </tr>
            <?php } ?>
        </tbody>
    </table>
    </body>
    </html>