Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP & MySqli Notice: Undefined offset: 10 in

Merhaba Arkadaşlar,

Aşağıdaki kodu uyguladığımda sürekli uyarı alıyorum ne yaptıysam olmadı ???
function getTree()
{
	
	$sql = 'SELECT n.catID, n.catNAME, COUNT(*)-1 AS level FROM categories AS n, categories AS p WHERE n.leftNODE BETWEEN p.leftNODE AND p.rightNODE GROUP BY n.leftNODE ORDER BY n.leftNODE;';
		$result = $db->query($sql);
		if ($db->affected_rows == 0)
		{
			return 'Hata! Kategori Yok';
		}
		$tree = array();
		$i = 0;
		while ($row = $result->fetch_assoc())
		{
			$tree[$i] = $row;
			$i++;
		}
		return $tree;
	}

function treeAsHtml()
{
	$tree = getTree();
	$html = "<ul>\n";
	for ($i=0; $i<count($tree); $i++)
	{
		$html .= "<li>" . $tree[$i]['catNAME'];
		if ($tree[$i]['level'] < $tree[$i+1]['level'])
		{
			$html .= "\n<ul>\n";
		} elseif ($tree[$i]['level'] == $tree[$i+1]['level'])
		{
			$html .= "</li>\n";
		} else
		{
			$diff = $tree[$i]['level'] - $tree[$i+1]['level'];
			$html .= str_repeat("</li>\n</ul>\n", $diff) . "</li>\n";
		}
	}
	$html .= "</ul>\n";
	return $html;
}
echo treeAsHtml();

Ayrıca Kullanmak isteyen olursa Sql tablo yapısınıda verebilirim..
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • sagoral adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    38 cevap - 2 soru
                $diff = $tree[$i]['level'] - $tree[$i+1]['level'];
    


    $tree değişkenin boyutu 10 olsun. Yani son nokta $tree[9]... ama sen $i=0; $i<10 yapıyorsun. En son $i=9 olduğu durumda yukarıdaki kod $tree[10]'u işlemeye çalışıyor.. Bu nedenle uyarı veriyor o kadar ;)

    Bunu çözmen için for döngüsünü açarken $i<count($tree) yerine $i<(count($tree)-1) yapman yeterli ;)

Cevaplar

  • Kadir adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    4 cevap - 8 soru
    Merhaba, ilginiz ve yardiminiz icin tesekkur ederim :)
    Suan yoldayim eve gecer gecmez hatami duzeltecegim (: