PHP sayfalama ve sıralama

4 Cevap php

Ben şu anda bir ev CMS üzerinde çalışıyorum ve bir durma biraz gelmiş. Ben bir blog mesajların sayfaları arasında sayfalandırmamayı kolaylaştırmak için çalışıyorum, ve nasıl ele alınması gerektiği üzerinde karar veremez. Bir kullanıcı sayfası veya içeri mesajları sıralamak için sipariş başına görüntülemek için kaç sonuç seçmenize izin gerektiğinde asıl sorun yalnızca ortaya çıkar

Benim ilk düşünce sadece bir sorgu dizesi kullanmak oldu: blog/?page=3&count=20&sort=date ama bu yöntem SEO üzerinde olumsuz etkileri olacak mı emin değilim.

Örneğin, Google blog/?page=3&count=20 olarak aynı olduğunu fark edecek kadar mantıklı blog/?count=20&page=3?

Daha sonra oturumları kullanarak düşündünüz, ama yine bu yukarıdaki sorunu çözmüyor, ve bazı kullanıcılar çerezler etkin olmayabilir gibi muhtemelen daha kötü hale getirir.

blog/1/20/: Son olarak, ben zaten böyle bir yapıyı kullanmak için iyi olabilir, URL'ler bazıları için mod_rewrite istiyorsunuz kullanıyorum?

Gerçekten burada bazı yardım / önerileri ile yapabilirdi, paginating sonuçlarının sert ve hızlı-yol olarak görünmüyor.

Şimdiden teşekkürler

4 Cevap

Sürece bu sorgu dizeleri (spiderable olan statik, normal 'çağrı' linkleri aracılığı ile) sitenizde bağlantıları mevcut olduğu gibi herhangi bir olumsuz etkisi olmamalıdır. Disk belleği oturumları ile olur, ancak, o genellikle çerezler aracılığıyla veya uzun sorgu dizesi yayılır oturum kimliği tarafından yapılır gibi bir etkisi olabilir. Bildiğim kadarıyla, parametrelerin sırası sürece sunucudan aynı çıktıyı verir gibi, önemli değil.

Basit GET sorgu dizesi çağrı yöntemi güzel çalışıyor. Google da bunu yapar (örn: q = Test & = 10 & start ...), nokta her şeyin düz vanilya çapa ile ulaşılabilir yapmaktır.

Eğer tatmin edici taranmasını almak için sitenizi planlıyorsanız querystrings kullanmaktan kaçının.

Bunun yerine, mod_rewrite ve bu gibi sorguları kullanabilirsiniz:

blog/page:3/count:20/sort:date

Yolumdan querystrings tutarken Yani, daha okunabilir hale getirecektir.

Tabii ki, gerçek sorgu yapmadan önce bu ayrıştırmak gerekir, ama PHP yapmak için oldukça basit bir şey: explode() Eğer URI her bölümünü ayrı kullanarak, oradan ayrıştırmak.

Bina bağlantıları size daha fazla esneklik verecek olan, onları yerine takas ve ihmal izin, sabit parametrelerin sırasını olmaması düşünün.

Ben her zaman ajax çağrıları yoluyla ayarlanmış olsun oturum değişkenleri ile bu yapmış.

Her sütun başlığı için bir onClick olayı ayarlayın ve bir div sayfanın içeriğini sarın, bu yüzden değiştirebilirsiniz.

Google yine aynı sayfada 10 farklı sürümlerini indirmek istemiyorum.

Oturum değişkenleri hakkında Yorumlarınız üzerinde:

Daha sonra oturumları kullanarak düşündünüz, ama yine bu yukarıdaki sorunu çözmüyor, ve bazı kullanıcılar çerezler etkin olmayabilir gibi muhtemelen daha kötü hale getirir.

Oturum değişkenleri sunucu ve istemci değil saklanan, bu nedenle çerezleri devre dışı oturum değişkenleri etkilemez.

Oturum değişkenleri muhtemelen google çoğaltma sorunları önlemek istiyorsanız, bu sorunu çözmek için en kolay ve en güvenilir yoludur.