PHP Son Eylemler?

2 Cevap php

Eğer http://www.foxnews.com gidin ve biraz aşağı doğru ilerleyin Eğer kutu "SON HABERLER" görecekti.

Şimdi böyle bir şey yapmak istiyorum, ama bir değişiklik ile.

Ben 3 sorguları var, bu 3 tablodan bilgi alabilirsiniz. 3 ayrı sorgular çünkü Ama bu, bana "son haber" vermez.

Now I want to make a box, (I can do this in css), that displays the latest column of those 3 tables, sorted by dato DESC.

Bu tablolar şunlardır:

TabloAdı: Member_meetups

Göstermek için Sütun: meetup

Tablo: member_film

Göstermek için Kolon: navn

Tablo: member_tutorials

Göstermek için Sütun: title

Sort by dato.. All these tables have the column "dato" too, so I want to sort out from dato DESC..

Ve bu 3 tablodan son eylemler olacağı şekilde ..

FOR EXAMPLE it would show like this:
Latest Actions:
I love Meetups - 23:11:02 - 01/01/01 (a column in member_meetups)
I love tutorials - 23:10:00 - 01/01/01 (a column in member_tutorials)
I love tutorials first - 22:59:00 01/01/01 (a column in member_tutorials)
I hate movies! - 22:42:00 01/01/01 (a column in member_film)

and so on.. as you see sorting by DATO, shows the last column's title+dato in the 3 tables.

Questions please comment, and please answer with not so hard English, as you may hear, I'm not English myself.
Thank you

Benim soru: Bu nasıl yapılır?

2 Cevap

Sen UNION kullanmak istiyorum. İşte örnek bir sorgu:

SELECT meetup AS text, dato FROM Member_meetups UNION
SELECT navn AS text, dato FROM member_film UNION
SELECT title AS text, dato FROM member_tutorials
ORDER BY dato DESC
LIMIT 10;

Ben sadece belirtilen sütunlar seçilir; Her tablodan daha fazla sütunu ihtiyacımız olacak eğer ihtiyaç olarak daha sonra sorguyu değiştirebilirsiniz. Sadece veri normalleştirmek için gerektiği gibi AS fonksiyonunu kullanarak sütun adlarını sıraya emin olun.

Bu verileri önbelleğe düşünmek gerekir; Bu genellikle oldukça yavaş bir sorgu olabilir.

Edit to answer question in comments:

O bunu nasıl çalışmasını istiyorsanız benim için tamamen net değil ve bu DB'ın şema olmadan tam bir sorgu yazmak zor, ama burada özü budur:

SELECT m.meetup AS text, m.dato FROM Member_meetups m
INNER JOIN member_battles b
ON m.battle=b.id
WHERE b.fighter1=$pUsername OR b.fighter2=$pUsername UNION
SELECT navn AS text, dato FROM member_film UNION
SELECT title AS text, dato FROM member_tutorials
ORDER BY dato DESC
LIMIT 10;

Ben DB'ın şema biliyor ya oldukça yapmanız sorgu isteyen konum ne anlamıyorum çünkü Yine, çok kaba. Eğer daha özel yardıma ihtiyacınız olursa, ben sorunuzu düzenleme veya yeni bir başlangıç ​​ya da öneririm. Bu yorumlar ile bu tür şeyler ile çalışmak çok zor.

Aslında ben ne toplayabilir gelen bir soru sormayın.

Ama ben elimden olarak question yanıtlamaya çalışacağız.


Sen mySQL katılmak kullanmalısınız. (Ben mySQL kullanarak varsayarak yaşıyorum).

Daha sonra tek bir sorguda ne istediğinizi yapabilirsiniz. Eğer DB şema hakkında daha fazla bilgi sağlamak ise o zaman sizin için tam sorgu oluşturmak mümkün olacaktır.