Arkadaşım aynı şekilde yazacaksan sessiona atsana, serialize ile uğraşacağına:
<?php
if(!$_SESSION['kategoriler'] || || (time() - $_SESSION['kategori_zamani'] > 600)){//sessionda kategoriler yoksa veya kontrol süresi 10 dakikayı geçmişse
$sql = mysql_query("SELECT id,katadi,seo,alt FROM kategori ORDER BY seo ASC");
while($yaz = mysql_fetch_array($sql)) {
$altsql = mysql_query("SELECT katadi,seo,alt FROM kategori WHERE alt='$yaz[id]' ORDER BY seo ASC");
while($altyaz = mysql_fetch_array($altsql)) {
$kategoriler .= '<li class="alt"><a href="'.$ayar['siteadres'].'/'.$altyaz['seo'].'/">'.$altyaz['katadi']."</a></li>";
}
$kategoriler .= '<li><a href="'.$ayar['siteadres'].'/'.$yaz['seo'].'/">'.$yaz['katadi']."</a></li>";
}
$_SESSION['kategoriler'] = $kategoriler;
$_SESSION['kategori_zamani'] = time();
}
else{
$kategoriler = $_SESSION['kategoriler'];
}
echo $kategoriler;
?>Yok serialize istiyorsan da aynı mantıkla, serialize, unserialize yapabilirsin. Sadece $kategoriler .= yerine $kategoriler[$i] = "",$kategoriler[$i]['altkat']="" vb. şeklinde kullanırsın.