Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
05, 2008, 09:09:35 am
42712 Mesaj 9331 Konu Gönderen: 17904 Üye
Son üye: RafiX
Turk-Php.Com Forum  |  Yardım Forumları  |  Veritabanı Yardım Forumu  |  en fazla oyu alan en başta çıksın « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: en fazla oyu alan en başta çıksın  (Okunma Sayısı 528 defa)
24872
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 6


Üyelik Bilgileri
en fazla oyu alan en başta çıksın
« : 30, 2007, 04:59:45 pm »

merhba arkadaşlar.

aşağıdaki gibi bir tablom var.


Kod:
CREATE TABLE `oylar` (
`id` int(11) NOT NULL auto_increment,
`entry_id` int(11) NOT NULL,
`nick` varchar(255) NOT NULL,
`entry_sahibi` varchar(255) NOT NULL,
`oy` int(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `entry_id` (`entry_id`),
KEY `nick` (`nick`),
KEY `entry_sahibi` (`entry_sahibi`),
KEY `oy` (`oy`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;


(14,'444','ben','sen','1'),
(15,'444','o','sen','1'),

yukarda belirtildiği gibi 444 ID nolu yazıya iki kişi oy vermiş. ben bu yazıları

Kod:
$result = mysql_query("SELECT DISTINCT entry_id FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 ");
if ($result) {

while(list($entry_id) = mysql_fetch_row($result)) {

echo " #$entry_id -";
}
}

ile çekiyorum ama en çok oy alanlar başa gelmiyor. yazılar karışık duruyor. aynı yazıya verilen oyları nasıl toplayıp en başa getirebilirim.

şimdiden teşekrler.
« Son Düzenleme: 30, 2007, 05:10:38 pm Gönderen: 24872 » Logged
qse
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 80


Üyelik Bilgileri
Ynt: en fazla oyu alan en başta çıksın
« Yanıtla #1 : 31, 2007, 02:40:37 am »

SELECT DISTINCT entry_id FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 order by oy

şeklinde yaparsan sanırım olucak
Logged

iş aramayı meslek edinmişim fark etmedem
blog deneme

http://bux.to/?r=qse
24872
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 6


Üyelik Bilgileri
Ynt: en fazla oyu alan en başta çıksın
« Yanıtla #2 : 31, 2007, 08:21:34 am »

maalesef olmadı oyle. yani ben şöyle düşünüyorum. öncelikle birden fazla aynı satır varsa önce bunların oyu toplanır ve ona gore en büyük başa geçer. ama nasıl Smiley
Logged
morad
Morad
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 19



Üyelik Bilgileri WWW
Ynt: en fazla oyu alan en başta çıksın
« Yanıtla #3 : 09, 2007, 07:25:09 am »

SELECT DISTINCT entry_id FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 order by oy

sorgusuna ekleme yapman gerekecek

Kod:
SELECT DISTINCT entry_id,SUM(oy) AS oy_toplami FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 order by oy_toplami DESC

kolay gelsin
Logged

Biz Öğrenelim Diye yazıyorum
http://www.morad.info/
Arbalot
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 28


Üyelik Bilgileri
Ynt: en fazla oyu alan en başta çıksın
« Yanıtla #4 : 12, 2007, 09:54:39 am »

SELECT DISTINCT entry_id FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 order by oy

sorgusuna ekleme yapman gerekecek

Kod:
SELECT DISTINCT entry_id,SUM(oy) AS oy_toplami FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 order by oy_toplami DESC

kolay gelsin


sum kullanıyorsan sonda bir de group by ifadesi kullanmalısın ki bir anlam kazansın...


Kod:
select DISTINCT entry_id,count(*) AS oy_toplami FROM oylar WHERE `entry_sahibi`='$yazar' and oy = 1 limit 10 group by entry_id

bu şekilde entry_id ye gore gruplayıp her entry_id için kaç satır var yanına yazar...
« Son Düzenleme: 12, 2007, 09:57:32 am Gönderen: Arbalot » Logged
Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.