[]

Array - like - mysql/php

umarım karışık olmaz;

şimdi veritabanımda "isimler" diye bir kaydım var diyelim. satır satır, 100 tane isim kayıtlı diyelim aynı zamanda.

bir diğer tablomda ise "icerikler" bulunuyor. tahmin edeceğiniz üzere bunda da kullanıcıların yazdıkları içerikler saklanıyor.


şuan istediğim şey; isimler listesinden herhangi bir isim, en son ne zaman icerik'lerde kullanılmış. ve bu kullanılan isim hangisi, bana 5 tanesini ver.

açıkçası formülü bir türlü kuramadım. bir arraya bağlamam lazım sanırım ama arraya bağlasam bile içeriklerde bunların yer alıp almadığını, alıyorsa da hangisinin yer aldığını nasıl görürüm bilemedim.

 
aşağıdaki gibi bir sorguda işinizi görebilir.

SELECT TOP (2) AdSoyad
FROM Kullanicilar
WHERE KullaniciId IN (SELECT KullaniciId FROM Icerikler)

zaten bu tablolarda ilişkili alan olacağı için direkt olarak inner join kullanarak da seçebilirsiniz.
  • cirkinkizyokturazvotkavardir  (22.06.12 13:14:03) 
bi kere ilk olarak bu işi php'de değil database tarafında yapmalısın.

www.w3schools.com

bahsettiğin gereksinimi tam olarak anlayamamış olabilirim ama sanırım "kendisinden bahsedilen kullanıcılar" gibi bişey istiyorsun. performansı kötü olabilir bu istediğin şeyin, eğer cirkinkızyoktur'un dediği gibi birşey istiyorsan yani sadece icerik "yazan" kullanıcıları istiyorsan yukarıdaki cevabı kullanabilirsin.
  • altikereyedi  (22.06.12 13:22:31) 
@altikereyedi;

kanka söylediğin gibi; icerik'lerde yer alan son 5 kullanıcıyı bastırmk istiyorum yalnızca.

ya da en azından;
yani, select * from konular where icerik like (her bir kullanıcı) limit 5 gibi bir sistem lazım. yani en azından kullanıcı isimleri içeren konuları listelemem de idare edebilir şimdilik.
  • kameramotor  (22.06.12 13:33:59) 
sorguyu yazmak mümkün değil tabii benim tarafımdan şu anda; ayrıca uygulaman nasıl scale eder, mysql nasıl performans gösterir-ya da optimizasyon için ne yapmak gerekir- gibi şeylere yanıt veremeyeceğim, ancak algoritmik açıdan performans konusu bu gereksiniminde önemli. çok dramatik durumlarla karşılaşabilirsin. benim sana önerim şu olur:

sen bu içeriği kaydediyorsun bir noktada database e değil mi? içeriği kaydederken aramanı yap, bahsedilen kullanıcıları bul ve ayrı bir tabloda sakla, laf olarak anlatmak gerekirse, "bu içerikte bu adamlardan bahsedilmiş" amaçlı bir tablon olsun. böylece sorunda bahsettiğin gibi bir bilgiye çok daha hızlı ulaşabilirsin. ben olsam böyle yapardım.
  • altikereyedi  (22.06.12 14:16:01) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.