En son eklenen yazar yazısı sıralamada en üste.
Merhaba arkadaşlar. Öncelikle bu form sayesinde birçok şeyi çözdüm ve php kodları kavrayabiliyorum artık az çok. konuya yardım eden arkadaşlara teşekkürler.
Şimdi bir sorum olacak. Arkadaşlar sitemde yazarlar var ve blokta sıralaması şöyle oluyor. Yönetim panelinden ilk eklediğim yazar en üstte, en son eklenen yazarlarda alta doğru sıralanıyor dolayısıyla sabit kalıyor sıralama ancak ben şöyle birşey yapmak istiyorum.
Mesela yazar yeni bir yazı ekledi hemen sıralamada en üste çıksın istiyorum kodları ve forumu (Gözden kaçtıysa özür) baya kurcaladım ama bir türlü yapamadım. Bunu sizxce nasıl çözebilirim?
Yazar kodunun başlangıcı şöyle:
<?
$say=0;
$sql="select * from yazarlar ORDER by id ASC LIMIT 0,10";
$sonuc=mysql_query($sql);
while ($row=mysql_fetch_array($sonuc))
{
$sql2="select * from yazar_makale WHERE yazar_id='$row[id]' ORDER by id DESC LIMIT 0,1";
$monuc=mysql_query($sql2);
while ($rows=mysql_fetch_array($monuc))
{
$kisamak = substr(nl2br(stripslashes($rows["makale_baslik"])),0,55);
$say++;
?>
Veritanabı Sutünları ise şöyle
yazar_id: yazarın id si
id: eklenen makalenin id si
makale_baslik: yazının başlığı vs..
Php
$sql="select * from yazarlar ORDER by id DESC LIMIT 0,10";
Php
ASC ve DESC bildiğim id rakamlarını ters yada düz sıralama yapar. benim dediğim konu biraz farklı.
Php
bahsettiğim şu. Atıyorum Selim Ahmet Mehmet yazarları var bu kodda Selim En üstte Mehmet altında Ahmet en sonda. saebebi ilk selimi yazar olarak eklediğim için ikinci mehmet üçüncü ahmet. ben sıralamayı atıyorum mehmet yeni yazı ekledi hop o en üste geçsin istiyorum sıralamayı böyle yapmak istiyorum yani kardeşim.
Php
O zaman iki tablodan aynı anda veri çekip sıralama yapacaksın.
şöyle birşeyler olur , mavi bölüm senin tabloya göre farklı olabilir:
SELECT * FROM yazarlar,makale WHERE yazarlar.id = makale.yazarid ORDER BY makale.id DESC
Php
bu kodu yerleştiremedim. en üstte verdiğim örneğe göre yapsan? iki tablodan zaten çekiyorum sql ve sql2 diye ayırt ettim ama dediği kodu çalıştıramadım.
Php
iç içe iki while kullanmana gerek yok. hepsini tek SQL le yapabilirsin. dediğim yöntemle.
Php
dediğin yöntemi kavrayamadım işte :) hocam sana zahmet şu yukarıdaki koda bakıp yazsan çok olur muyum sana?
Php
Senin tabloya göre şöyle birşey olur.
SELECT * FROM yazarlar, yazar_makale WHERE yazarlar.id = yazar_makale.yazar_id ORDER BY yazar_makale.id DESC
Navicat programını kullan. gayet verimli.