Anladığım kadarıyla sorun $kat_ust = $kat_cek['kat_ust'];
kat_ust'ün son birimi göstermesi.
Fonksiyondaki foreach içinde tekrar sorgulama yapmanız gerekir. Örn:
$idsi=$kategoriidsi;
// mysql bloğu:
//sorgu şöyle: SELECT * FROM tablonuz WHERE ID < $idsi ORDER BY ID LIMIT 1
//mysql bloğu-
$sayim=mysqli_num_rows($sorgu);
if ($sayim>=1) $bironceki=$x['id'];
if ($bironceki>=1) $katustolarakbelirle;
bu tür bir sorgu her seferinde değişmekle birlikte foreach son elemanı işleyince bir önceki elemanı belirlemiş olur.
Emeğin için teşekkürler hocam dünden beri boş boş düşünüyorum kendi hatam

fonksiyondan gönderdiğim kat_ust var zaten alttaki fonksiyondan da aynısını göndermem lazım ben başka şeylerle uğraşıyorum

Hallettim şimdi