SELECT
oykuler.id AS oykul_ID,
oykuler.image AS oyku_image,
oykuler.baslik AS oyku_baslik,
oykuler.spot AS oyku_spot,
yazarlar.id AS yazar_id,
yazarlar.adsoyad AS yazar_adsoyad
FROM
oykuler
LEFT JOIN yazarlar ON
yazarlar.id = oykuler.yazar_id
WHERE
oykuler.yayin='E'
ORDER BY
oykuler.tarih DESC
LIMIT $i,1
Çift tablo ile uğraşırken tablodaki alan adlarının aynı olması sonucu bazı karışıklıklar oluyor. Bunların önüne geçmek için tablo alan adını başka bir isim ile temsil ettiriyorum. Yani "AS" kelimesinden sonraki yerler tablo alanlarını ifade etmiyor. Sadece sorgu sonucunda alınan verilerdeki alanların adını belirtiyor.
Örnek:
İki tane tablomuz var diyelim;
tablo1 ------ tablo2
id id
alan alan
Mesela iki tablodanda aynı anda veri çekerken id verileri sadece bir tablodan gelir çünkü iki tablo alan adıda aynıdır. Bunun önüne geçmek için SELECT içinde tablo.alan AS "yeniisim" şeklinde tanımlama yapılır. Sorgunun dönderdiği verilere bakarsanız daha iyi anlayabilirsiniz.
Tabikide sizin tablo alanlarınızda aynı isimli olan sadece id var. Ben yinede yazarın adsoyadını da tanımladım.
Size verdiğim SQL kodunu denediniz mi ? Önce onu deneyin, çalışması lazım tablo alanları doğru ise.