• 31-10-2023, 09:11:25
    #1
    merhabalar, web sitemde etiketleri listeliyorum ama aynı etiketten defalarca var, bunu for ile yazdırırken aynı olan atıyorum 25 satırdan 1 tanesini yazdırmak istiyorum. aşağıda çalışan kodum mevcut yardımlarınızı bekliyorum

    <?php
    $rows_etiket = $db->query("select * from etiketler order by id desc");
    foreach ($rows_etiket as $key => $row_etiket) {
    ?>

    <url>
    <loc><?php echo $row_etiket["selflink"]; ?></loc>
    <lastmod>2023-10-31T09:04:37+00:00</lastmod>
    <priority>1.0</priority>
    </url>

    <?php } ?>
  • 31-10-2023, 09:16:23
    #2
    Etiket aynıysa Sql distinct kullanın
  • 31-10-2023, 09:20:19
    #3
    Eğer aynı etiketten sadece bir tane yazdırmak istiyorsanız, etiketleri bir dizi içinde toplayabilir ve daha sonra bu diziyi kontrol ederek yinelenenleri filtreleyebilirsiniz. İşte bu işlemi gerçekleştiren bir örnek kod:
    <?php
    $rows_etiket = $db->query("select * from etiketler order by id desc");
    
    // Etiketleri depolamak için bir dizi oluşturun
    $etiketler = array();
    
    foreach ($rows_etiket as $key => $row_etiket) {
        // Dizide etiket varsa tekrar ekleme
        if (!in_array($row_etiket["etiket_adi"], $etiketler)) {
            $etiketler[] = $row_etiket["etiket_adi"];
            ?>
    
            <url>
                <loc><?php echo $row_etiket["selflink"]; ?></loc>
                <lastmod>2023-10-31T09:04:37+00:00</lastmod>
                <priority>1.0</priority>
            </url>
    
        <?php }
    } ?>
    ChatGPT
  • 31-10-2023, 09:33:30
    #4
    SELECT * FROM etiketler GROUP BY etiket ORDER BY id DESC

    etiket yazdığım yere hangisi tek tek yazılacaksa sütun ismi girin.
  • 31-10-2023, 16:55:29
    #5
    <?php
    $etiketler = array();
    $rows_etiket = $db->query("select * from etiketler order by id desc");
    
    foreach ($rows_etiket as $key => $row_etiket) {
        $etiket = $row_etiket["selflink"];
        
        if (!in_array($etiket, $etiketler)) {
            array_push($etiketler, $etiket);
    ?>
    
    <url>
    <loc><?php echo $etiket; ?></loc>
    <lastmod>2023-10-31T09:04:37+00:00</lastmod>
    <priority>1.0</priority>
    </url>
    
    <?php
        }
    }
    ?>