toplist yapımı

0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
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.
 
1
Onaylı Üye
Üye
Katılım
25 Şubat 2005
Mesajlar
3,824
Tepki puanı
20
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ı
 
0
Onaylı Üye
Üye
Katılım
3 Aralık 2004
Mesajlar
0
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
19 Temmuz 2005
Mesajlar
2,014
Tepki puanı
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;
 
0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
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ı.
 
0
Onaylı Üye
Üye
Katılım
12 Haziran 2006
Mesajlar
1,511
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
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.)
 
0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
0
evet o benimde aklıma geldi.akşam danayacam bakalım. inşallah olur. cevabı buradan bildireceğim. kodla birlikte
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
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.
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
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
";
 
0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
26 Ağustos 2006
Mesajlar
1,486
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
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
";
 
0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
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
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
7
hayır tablo dediğim yerler veritabındaki tablo oralar doğru değil mi?
 
0
Onaylı Üye
Üye
Katılım
10 Ekim 2006
Mesajlar
0
Tepki puanı
0
sitelerin kişisel bilgileri siteler tablosunda kayıtlı.
from siteler order by say desc
diyorum yine olmuyor
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
7
bu sorgunun sorun cikaracagini sanmiyorum sanirsam bazi noktalarda yanlis yapiyorsun tamamen gormedigim icinde bu kadardan fazla yardim yapamayacagim.
 
Geri
Üst