2016-04-09 31 views
0

ile düzgün çalışmıyor, bir sorunum var. SADECE kullanıcılara son eylemin 15 dakika olduğunu anlamaya çalışıyorum. Ben sql benim katılmak (ben denedim) kullanmayın, ancak JOIN veya SOL, SAĞA veya diğer JOINS eklediğinizde çalıştığım eminim, sadece 15 dakikada aktif değil, tüm kullanıcılar olsun. İşte benim kodJoin, WHERE

function get_logged_users() { 
global $dbh; 
$users_info = $dbh->prepare(
    'SELECT 
    users.username as `username`, 
    users.id as `id`, 
    ranks.style as `style` 
    FROM `users` 
    LEFT JOIN `ranks` ON users.rank=ranks.id; 
    WHERE users.last_login > ?'); 
$users_info->execute(array(date("Y-m-d H:i:s" ,strtotime(date("Y-m-d H:i:s")." -15 minutes")))); 
$users_info = $users_info->fetchAll(); 
return $users_info; 

}

Herkes bana yardımcı olabilir mı? :) Teşekkürler!

tablolar: users

ranks

+0

puanları, lütfen kullanıcılara ve sıralar için şemalar sağlayabilir misiniz? – atefth

+0

Üzgünüz, veritabanı sütunlarını mu kastediyorsunuz? :) – Danielius

+0

Evet, demek istediğim bu. – atefth

cevap

3

:

... 
LEFT JOIN `ranks` ON users.rank=ranks.id; <--- 
... 

noktalı virgül olmamalıdır (; (

)
+0

teşekkürler, gerçekten benim sorunumdu :) – Danielius

+0

@Danielius, rica ederim – RomanPerekhrest

0

bu sql deneyin - O WHERE deyiminden önce sadece bir yazım hatası var

$users_info = $dbh->prepare(
    'SELECT 
    users.username as `username`, 
    users.id as `id`, 
    ranks.style as `style` 
    FROM `users` 
    JOIN `ranks` ON ranks.id=users.rank 
    WHERE users.last_login > ?'); 
+0

Hayır işe yaramıyor :(ben zaten bir araya geldiğimde denedim ve bir araya geldim .. – Danielius

+0

RomanPerekhrest'in cevabı, bir yazım hatası vardı;) – atefth

+0

evet, sizin de teşekkürler :); sql, php - kodu :) ile aynı anlama gelir ve bundan dolayı WHERE'm çalışmadı mı? :) – Danielius