Bu gerçekten daha önce sorulmuş ise Afedersiniz, ben orada benzer başlıklı mesajların onlarca dışında benim ihtiyaçlarını donatılmış bir şey göremiyordu ;)
Ben aynı uzunlukta değildir 2 php dizileri birleştirmek, hem de diziler içinde aynı anahtar => değerlerden bulunan bir değer bunları birleştirmek çalışıyorum.
Benim ilk sorgu iç içe geçmiş bir dizi bir dizi üretir:
array
(
1 => array
(
'node_id' => 1,
'lft' => 1,
'rgt' => 4,
'moved' => 0,
'label' => 'Home',
'entry_id' => 1,
'template_path' => '',
'custom_url' => '/',
'extra' => '',
'childs' => 1,
'level' => 0,
'lower' => 0,
'upper' => 0
),
2 => array
(
'node_id' => 2,
'lft' => 2,
'rgt' => 3,
'moved' => 0,
'label' => 'Home',
'entry_id' => NULL,
'template_path' => '',
'custom_url' => 'http://google.com/',
'extra' => '',
'childs' => 0,
'level' => 1,
'lower' => 0,
'upper' => 0
)
);
Benim ikinci dizi ben yukarıdaki diziye eklemek istediğiniz bazı ek anahtar / değerleri döndürür:
array
(
'entry_id' => 1,
'entry_title' => 'This is my title',
);
Ben anahtarındaki 'entry_id' maç yanı sıra eşleşmiyor alt diziler tutuyor olanların içine ek bilgi ekleme dizilerin hem birleştirmek istiyorum.
Yani, iki diziyi birleştirerek, ben ile bitirmek istiyorum
array
(
1 => array
(
'node_id' => 1,
'lft' => 1,
'rgt' => 4,
'moved' => 0,
'label' => 'Home',
'entry_id' => 1,
'template_path' => '',
'custom_url' => '/',
'extra' => '',
'childs' => 1,
'level' => 0,
'lower' => 0,
'upper' => 0,
'entry_title' => 'This is my title'
),
2 => array
(
'node_id' => 2,
'lft' => 2,
'rgt' => 3,
'moved' => 0,
'label' => 'Home',
'entry_id' => NULL,
'template_path' => '',
'custom_url' => 'http://google.com/',
'extra' => '',
'childs' => 0,
'level' => 1,
'lower' => 0,
'upper' => 0,
'entry_title' => NULL
)
);
Aslında, bu yazıya bana sql ile bunu düşünüyorum yapar ...
UPDATE: I'm trying to update the query, but getting errors that I can't figure out how to fix on the join :(
SELECT `n`.*, round((`n`.`rgt` - `n`.`lft` - 1) / 2, 0) AS childs,
count(*) - 1 + (`n`.`lft` > 1) + 1 AS level,
((min(`p`.`rgt`) - `n`.`rgt` - (`n`.`lft` > 1)) / 2) > 0 AS lower,
(((`n`.`lft` - max(`p`.`lft`) > 1))) AS upper
FROM `exp_node_tree_6` `n`, `exp_node_tree_6` `p`
LEFT JOIN `exp_channel_titles` ON (`exp_node_tree_6.entry_id`=`exp_channel_titles.entry_id`)
WHERE `n`.`lft`
BETWEEN `p`.`lft`
AND `p`.`rgt`
AND ( `p`.`node_id` != `n`.`node_id` OR `n`.`lft` = 1 )
GROUP BY `n`.`node_id`
ORDER BY `n`.`lft`
Üzgünüm, ben sql oldukça yeniyim ... ve ben bu hakkı almak bile, bu iki tablodan maçlarını entry_id sahip olanlar dönecektir değil sadece?
Ben exp_node_tree_6 tablodan tüm verileri almak ve entry_id varsa diğer daldırma gerekiyor ...