İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

toplist yapımı

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
merhaba arkadaşlar.
bir toplist kodlaması yapıyorum ama biryerde tıkandım kaldım sabahtan bu yana.
örnek www.trlist.gen.tr olduğu gibi sitelerin tekil hitlerine göre sıralama yaparken istediğim trlistte olduğu gibi sitelerinden kodu kaldırmış sitelerin tekil ve çoğul hitlerinide 0 diyerek aynen sıralamaya koyuyor.
tablo yapım şu şekilde

- sayac_no
- site_no
- tekil
- cogul
- tarih

veri tabanından seçerken mecbur tarihi seçmem gerek ve sıralamayıda teil hite göre yapmam gerek.

ama örneğin abc sitesi kodu 11.01.2007 de kaldırmış ve ben 13.02.2007 dekileri sıralayınca bu site sıralamaya girmiyor.

arkadaşlar umarım ne demek istediğimi anlatabilmişimdir. yardımınızı bekliyorum. teşekkürler.
 

sempaty

1
İyinet Üyesi
Katılım
25 Şubat 2005
Mesajlar
3,824
Reaction score
19
Konum
hawaii. ama sanal tur.
hangi mantıkla listelenmesinin engellendiğini bilmeden, daha net bi deyimle kodları görmeden yardım etmek zor açıkçası
 

Crash

0
İyinet Üyesi
Katılım
3 Aralık 2004
Mesajlar
0
Reaction score
0
anladığım kadarıyla kodları kaldırmış olan sitelerde sıralamada gözüksün istiyorsun.Ama değerleri sıfır olarak gözüksün istiyorsun.
Bunu yapmak için ek bi çaba göstermene gerek yok yanlış anlamadıysam.
tekil çoğul kolonunun değerlerini int yap default değer olarak ta sıfır verbu şekilde sıralama yaptığın zaman değer sıfır olarak gözükmesi lazım.Aynı zamanda isteninde gözükmesi lazım
 

*siber*

0
İyinet Üyesi
Katılım
20 Temmuz 2005
Mesajlar
2,014
Reaction score
1
Konum
about:blank
Arkadaşında dediği gibi 24:00 da hitleri update yaparken
- tekil
- cogul
0 değerini verince listede otomotik görüneceklerdir. order by tekil desc;
 

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
arkadaşlar zaten int yaptığında yaz dediğinde değeryoksa php otamatik olarak onu 0 yazar. o değil sorun. mesele o tarihte o siteden hiç veri gelmediğine göre satır hiç olmayack ama nasıl listelenecek.
birşey daha deneyecem bakalım. hayırlısı.
 

webyazilim

0
İyinet Üyesi
Katılım
12 Haziran 2006
Mesajlar
1,511
Reaction score
0
Konum
Kayseri
timestamp field type kullanırsanız güncelleme tarihi için o anın tarihi ile aradaki farkı son ping tarihini ölçüp x saniye falandan büyükse kaydı gösterme diyebilir ve mesud olabilirsiniz.
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
sql ile bilgiyi çekerken sanırım where tarih="bugünkütarih" gibi bir sql kullanıyorsunuz.

bunun yerine, where tarih="bugünkütarih" bölümünü girmeyin, sqldaki tüm siteleri çekin ORDER by tarih,hit DESC 'i sqla eklerseniz, büyük tarihten küçüğe göre sıralayacağı için istediğinizi yapmış olursunuz.

(ek not: eğer tarih düzeniniz 13.07.2007 gibi birşeyse, YILAYGÜN yani 2070713 şekline getirmelisiniz.)
 

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
sql ile bilgiyi çekerken sanırım where tarih="bugünkütarih" gibi bir sql kullanıyorsunuz.

bunun yerine, where tarih="bugünkütarih" bölümünü girmeyin, sqldaki tüm siteleri çekin ORDER by tarih,hit DESC 'i sqla eklerseniz, büyük tarihten küçüğe göre sıralayacağı için istediğinizi yapmış olursunuz.

(ek not: eğer tarih düzeniniz 13.07.2007 gibi birşeyse, YILAYGÜN yani 2070713 şekline getirmelisiniz.)

evet tarih="bugünkütarih" olarak kullanıyorum ve olmuyor.
peki ama ORDER by tarih,hit DESC olarak kullandığımızda da olmazki. sebebi.
Örneğin a sitesi
21.11.2007 215 ziyaretçi
22.11.2007 210 ziyaretçi

b sitesi en son 21.11.2007 ve 300 ziyaretçi

ben sıraladığımda tari 22.11.2007 olduğunu var sayalım ve b sitesi 300 olarak en sonda listelenecek. yani yine olmayacak. yanlışmı düşünüyorum.
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
Arkadaşım hiç toplist falan yapmadım ama, fikir vermek gerekirse sen sql den çekerken tarihe göre değil, bütün kayıtları çekip tarih ve hite göre sıralattıracaksın. Ancak yazarken bir kontrol yap.
PHP:
echo ($sonuc['tarih'] == $bugun_tarih) ?  $sonuc['hit'] :'0';

gibi. Böylece hem bütün siteleri yazarsın hem de o günün tarihi sqlden gelen tarihe eşit değilse 0 yazarsın.
 

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
evet o benimde aklıma geldi.akşam danayacam bakalım. inşallah olur. cevabı buradan bildireceğim. kodla birlikte
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
evet tarih="bugünkütarih" olarak kullanıyorum ve olmuyor.
peki ama ORDER by tarih,hit DESC olarak kullandığımızda da olmazki. sebebi.
Örneğin a sitesi
21.11.2007 215 ziyaretçi
22.11.2007 210 ziyaretçi

b sitesi en son 21.11.2007 ve 300 ziyaretçi

ben sıraladığımda tari 22.11.2007 olduğunu var sayalım ve b sitesi 300 olarak en sonda listelenecek. yani yine olmayacak. yanlışmı düşünüyorum.


sanırım dediğimi anlayamadın, tarihi 22.01.2007 olarak değil, 20070122 tarzında kaydet mysqla, tarihi yayınlarkende bölerek gün ay ve yılı alırsın. hem bu şekilde, en yüksek tarih ve hite göre sıralama yapacak.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
yanlış bir mantık tekil güne göre listeliyorsun.

İstediğini yapman için günlük tekile değil de toplam tekile göre listeleme yapman gerekiyor. genelde toplist mantığı budur.

günlük yaptığın için sayfaların çıkmaması doğal çünkü belirtilen günde hiç bir veri girişi olmadığı için onları yansıtamaz.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
ama şu şekilde bir fantezi yaptım sana,

PHP:
$bugun=date("hedehödö");
$sorgu = "
select id,site_adi,
 (

 select id from tablo where gun='".$bugun."' and tablo.id=tablo.id

 ) as say
 
 from tablo 
 order by say
 desc
";
 

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
şu şekilde

toplam tekile göre sıralama yapmayacağım. o günki tekile göre sıralama yapacağım.
evet günlük yaptığım için çıkmaması normal ama bunu günlük yapmadan nasıl olacak onun mantığını çözemedim.
verdiğin SQL örneğini de denedim ama olmadı veya ben yapamadım. tablo yapım şu şekilde.
26731.gif
 

Hostmaster

0
İyinet Üyesi
Katılım
26 Ağustos 2006
Mesajlar
1,486
Reaction score
0
Her gün saat 12'de günlük tekili sıfırlayarak hem gösterim yapmayan siteleri gösterirsin hem de toplam gösterimleri.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
PHP:
$bugun=date("d.m.Y");
$sorgu="
select site_no,
  (
  select sayac_no from tablo  where tarih = '".$bugun."' where tablo.sayac_no=tablo.sayac.no
  ) as say
  from tablo 
  order by say
  desc
";
 

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
kod bu şekilde. ama yine olmuyor. nerede yanlış deli olacam
PHP:
<?php
			$i=1 ;
			$limit="50000";
$tablo = "select site_no,
  (
  select sayac_no from tablo  where tarih = '".$tarih."' where tablo.sayac_no=tablo.sayac.no
  ) as say
  from tablo
  order by say
  desc
";    
		    $sorgu = mysql_query($tablo);
		    while ( $oku = mysql_fetch_assoc ($sorgu))
			{ 
			if ( $i % 2 ) { $renk="#FFFFFF"; } else { $renk="#F5F5F5"; }
			?>

from tablo order by say desc
burada hata olabilirmi. teşekkürler
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
hayır tablo dediğim yerler veritabındaki tablo oralar doğru değil mi?
 

adre_nalin

0
İyinet Üyesi
Katılım
11 Ekim 2006
Mesajlar
0
Reaction score
0
sitelerin kişisel bilgileri siteler tablosunda kayıtlı.
from siteler order by say desc
diyorum yine olmuyor
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
bu sorgunun sorun cikaracagini sanmiyorum sanirsam bazi noktalarda yanlis yapiyorsun tamamen gormedigim icinde bu kadardan fazla yardim yapamayacagim.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst