_halisoglu_ adlı üyeden alıntı: mesajı görüntüle
$sql = "SELECT sozler FROM makale ORDER BY RAND() LIMIT 1";
Yukarıdaki sql sorgusu gibi bir sorgu ile random veri çekebilirsiniz. her sayfa yenilendiğinzde yeni bir söz çeker. Ama aynı söz arada tekrar edebilir. Tekrar etmemesini istiyorsanız ajax ile get yada post işlemi ile değer döndürerek yapabilirsiniz.
Diyelim ki $_GET['id'] ile çalıştırdınız yapmanız gereken tamamen şu.
$sql = "SELECT sozler FROM makale WHEE id!='".$_GET['id']."' ORDER BY RAND() LIMIT 1";
Selamlar hocam,

2. satırdaki kodda yanlışlıkla WHEE(*WHERE) yazmışısınız . Ek olarak GET işlemini kullanıldığınız yerlerde değişkeni kesinlikle korumaya almanızı tavsiye ederim SQL inj'a karşı. Ayrıca GET mevcut mu sorgulaması da yaptırılmalıdır.

GET YOLU İLE YAPMAK İÇİN

Sizin yazdığınız kodu evirirsem;

Makalenin URL'sine ?id=MakaleID şeklinde bir bilgi girmen gerek. Atıyorum ki;

siteadi.com/makale-adi?id=321

Ardından;

if (isset($_GET['id'])){
$sql = "SELECT * FROM makale WHERE post_id='".intval($_GET['id'])."' ORDER BY RAND() LIMIT 1"; // ID değerlerinizin sadece numaralardan oluştuğunu varsayıyorum.
}
// foreach($sql as $randomsoz){ LIMIT 1 betiği verildiği için gereksiz.

echo "<p>";
echo "$sql->sozler";
echo "</p>";

// } Foreach kapatılması.
Bu kod ne yapar, neyi var sayar?

Bu kod makalede bir ek bir sql sütunu olduğunu var sayar ve bu sütuna "sozler" der. URL'den aldığı ID ile sql'de bir sorgu çektirir ve o spesifik post ID'sine ait olan veri tabanındaki "sozler" olarak girilen bilgileri çektirir.
Kullanımı aslında daha kolaydır ancak ön hazırlık olarak yeni post yaratılırken ki panele ek bir custom field eklenmeli ve bu custom field'a girilen değerleri o ID'nin database'de "sozler" bölümüne yazılmalıdır.