flyingatm adlı üyeden alıntı: mesajı görüntüle
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.
güzel kardeşim ben tamamen nasıl yazması gerektiğini değil mantığını anlattım güvenliğe alacağı almayacağı soruyu soran arkadaşı ilgilendirir. Burada laf yetiştirmek yada bak hata yapmışsın demek için yorum yazacağınıza arkadaşa yardımcı olunuz.