• 09-10-2014, 02:17:42
    #1
    Merhabalar arkadaşlar yapmak istediğim olayı aşağıda belirtim. Ama Yaptığım sql sorgusu ise ile sadece 1 tane tek yazar gelmekte. Ben ise bütün yazarların gelmesini istiyorum.

    Şimdiden tşk ederim iyi geceler dilerim.

    -Yazar 1
    Son Yazısı
    -YAzar 2
    Son Yazısı

    SELECT yk.ID, yk.AdSoyad, y.ID, y.Baslik,Y.YazarID
    FROM Yazar yk 
    Inner join Yazi y ON yk.ID = y.YazarID
    WHERE y.YazarID IN (SELECT MAX(ID) FROM Yazar WHERE y.YazarID = yk.ID )
    ORDER BY yk.ID DESC;
    iyi geceler.
  • 09-10-2014, 10:38:31
    #2
    Where kısımlarını düzeltip
    Group BY yk.ID
    Koymanız gerek sanırsam
  • 09-10-2014, 12:11:51
    #3
    $sql = mysql_query("SELECT * FROM tabloadi WHERE id='1'")
    * yazdığım yer tabloadi 'ndaki tüm verileri çeker.
    belli şeyleri çekecekseniz
    $sql = mysql_query("SELECT id,adsoyad,yazar FROM tabloadi WHERE id='1'")
    olarak yapabilirsiniz.
    bunu kullanmak için bir ayar.php dosyası oluşturup şunları yazın;
    $host = "localhost";
    $dbad = "databaseadi"; // Veritabanı ismi
    $dbk="databasekullaniciadi"; // Veritabanı kullanıcı adı
    $dbsifre = "databasesifresi"; // Veritabanı şifresi
    
    $baglan = @mysql_connect($host,$dbk,$dbsifre) or die ("Veritabanı bağlantısı yapılamadı.");
    mysql_select_db($dbad,$baglan) or die ("Veritabanı seçilemedi.");
    mysql_query("SET NAMES 'latin5'");
    mysql_query("SET CHARACTER SET latin5");
    mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
    İşinize yaradıysa R10+ butonu sağ taraftadır

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:11:51 -->-> Daha önceki mesaj 12:08:36 --

    $sql = mysql_query("SELECT * FROM tabloadi WHERE yayinda='1' ORDER BY id DESC LIMIT 0,10")
    birde bu var.
    'yayinda' = 1 olanlardan 0,10 arası kadar çeker.
    Son eklenen en üstte olur.(DESC)
  • 09-10-2014, 13:01:30
    #4
    Tablo verisini versen daha kolay yardımcı olabilirdik ama ben sana örnek bir tablo verisi ve sql komutu yazıyorum.

    Tablolar ( 2 Adet )

    /*
    
    yazarlar tablosu
    - yazarId ( INT ) AUTO_INCREMENT PRIMARY KEY
    - isim ( VARCHAR - 155 )
    
    yazilar tablosu
    - yaziId ( INT ) AUTO_INCREMENT PRIMARY KEY
    - baslik ( VARCHAR - 155 )
    - metin ( TEXT )
    - tarih ( DATETIME )
    - yazarId ( INT )
    
    */
    
    // Tüm yazarları ve son yazısını çekme sql komutu
    
    $Sql = "select * from yazarlar left join (select yazilar.yazarId, yazilar.baslik from yazilar order by yazilar.yaziId desc) as y on yazarlar.yazarId = y.yazarId group by y.yazarId";
    Umarım yardımcı olabilmişimdir.
  • 10-10-2014, 04:12:45
    #5
    ChuckyFun adlı üyeden alıntı: mesajı görüntüle
    Tablo verisini versen daha kolay yardımcı olabilirdik ama ben sana örnek bir tablo verisi ve sql komutu yazıyorum.

    Tablolar ( 2 Adet )

    /*
    
    yazarlar tablosu
    - yazarId ( INT ) AUTO_INCREMENT PRIMARY KEY
    - isim ( VARCHAR - 155 )
    
    yazilar tablosu
    - yaziId ( INT ) AUTO_INCREMENT PRIMARY KEY
    - baslik ( VARCHAR - 155 )
    - metin ( TEXT )
    - tarih ( DATETIME )
    - yazarId ( INT )
    
    */
    
    // Tüm yazarları ve son yazısını çekme sql komutu
    
    $Sql = "select * from yazarlar left join (select yazilar.yazarId, yazilar.baslik from yazilar order by yazilar.yaziId desc) as y on yazarlar.yazarId = y.yazarId group by y.yazarId";
    Umarım yardımcı olabilmişimdir.

    Tşk ederim hocam ilgilendiğiniz için ama sizin verdiğiniz koduda kullanınca malesef hata aliyorum.

    Kullandığım veritabanı MSSQL birşey farkedeceğini zannetmiyorum gerçeği.

    Msg 1033, Level 15, State 1, Line 1
    The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
  • 11-10-2014, 12:47:30
    #6
    Ben mysql de denedim bir sıkıntı yok, mssql konusunda bir fikrim yok ne yazıkki
  • 11-10-2014, 17:13:51
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Max(id) olan yeri id yaparak denermisin.