$arr1[0] ve $arr2[0] olmak üzere iki dizinin için de farklı mysql sorgularından gelen veriler var. Bunları foreach ile yazdırmak istiyorum.
Fakat şart şu: bir değişkendeki bir veri ikinci değişkende varsa onu atlayıp yazdırmaya devam edecek. yani eşleşen varsa iki kere azılmayacak, 1 kere yazılacak.
Nasıl olmalı?
foreach sorusu
14
●1.273
- 15-01-2010, 01:36:06herhangi bir array merge felan yapmadan bendeki $arr1 değişkeni print_r ($arr1); yapıldığında şu sonuçları döndürüyor:D3LLy adlı üyeden alıntı: mesajı görüntüle
Array ( [0] => Array ( [0] => pat robertson haiti comments ) [1] => Array ( [0] => american idol last night ) [2] => Array ( [0] => wyclef jean haiti relief ) [3] => Array ( [0] => haiti earthquake 2010 news ) [4] => Array ( [0] => skip holtz ) [5] => Array ( [0] => haiti to 90999 ) [6] => Array ( [0] => earthquake haiti death toll ) [7] => Array ( [0] => megalithic ) [8] => Array ( [0] => american idol pants on the ground video ) [9] => Array ( [0] => yele wyclef ) [10] => Array ( [0] => scott ritter ) [11] => Array ( [0] => doomsday clock ) [12] => Array ( [0] => salvation army haiti relief ) [13] => Array ( [0] => teddy pendergrass dead ) [14] => Array ( [0] => fark ) [15] => Array ( [0] => red cross haiti donations ) [16] => Array ( [0] => american idol 2010 auditions ) [17] => Array ( [0] => mali vs algeria ) [18] => Array ( [0] => ups shipping to haiti ) [19] => Array ( [0] => 700 club ) )
diğer $arr2 değişkeni de aynı şekilde ama veriler farklı. Buna göre nasıl yapacağız?
yapamadım ben senin dediğin gibi.
$yenidizi=array_unique(array_merge($arr1,$arr2)); foreach ($yenidizi as $veriler) { echo $veriler . '<br>'; }şeklinde yapıyorum array hatası geliyor.
$yenidizi=array_unique(array_merge($arr1[0],$arr2[0])); foreach ($yenidizi as $veriler) { echo $veriler . '<br>'; }bunda da sadece 2 sonuc donuyor halbuki 15 den fazla sonuc dönmesi lazım.
nasıl olacak? - 15-01-2010, 08:36:44Üyeliği durdurulduhocam hatali yapiyorsunuz. array mergeye array in kendisini vermeniz gerekiyor. siz indis li vermissinizooaykac adlı üyeden alıntı: mesajı görüntüle
$yenidizi=array_unique(array_merge($arr1[0],$arr2[0]));
degil
$yenidizi=array_unique(array_merge($arr1,$arr2));
gibi olmasi lazim - 15-01-2010, 11:32:06
<?php $sorgu1=mysql_query('select * from (select * from tablo order by id desc limit 20) as x order by id ASC'); // son 20 while($row1=mysql_fetch_array($sorgu1)) { $arr1[] = $row1['title']; // results into array } $sorgu2=mysql_query('select * from (select * from tablo order by id desc limit 40) as x order by id ASC limit 20'); // son 20 den önceki 20 while($row2=mysql_fetch_array($sorgu2)) { $arr2[] = $row2['title']; // results into array } foreach((array_unique(array_merge($arr1, $arr2))) as $veriler){ echo $i . '. '; echo $veriler. '<br>'; $i++; } ?>Şeklinde yaptım. Oldu. Yanlız bir sorunum daha var.
Burada iki veritabanından bilgileri alıp sorunsuz şekilde birbiriyle aynı olmayan verileri yazdırıyorum. Sorunum şu:
Tablolardaki diğer alanlarda bulunan verileri nasıl foreach döngüsünün içine koyacağım? alanlarım ID, TITLE, LOCATION ... şeklinde. TITLE çindekileri aldımda beraberinde diğer alanları foreach e alamadım.
$arr1 yada $arr2 değişkenlerinin içine ekleyince foreach döngüsünün içindeki array_unique olayına etki ettiği için yanlış sonuç geliyor.
Kısacası tablolardaki diğer verileri nasıl dödüreceğim? - 15-01-2010, 11:43:44Üyeliği durduruldubu kodları isteğinizde yazsaydınız daha kolay çozerdik hocam
<?php $sorgu1=mysql_query('select * from (select * from tablo order by id desc limit 20) as x order by id ASC '. 'UNION '. 'select * from (select * from tablo order by id desc limit 40) as x order by id ASC limit 20'); while($row1=mysql_fetch_array($sorgu1)) { echo $row1['title']; } ?>union aynı kayırları tekrar vermez. bir de boyle deneyin - 15-01-2010, 11:55:51Bu şekilde olmuyor. while($row1=mysql_fetch_array($sorgu1)) satırı içinD3LLy adlı üyeden alıntı: mesajı görüntüle
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in .....
hatası geliyor.
"kodları isteğinizde yazsaydınız" derken anlamadım demek istediğinizi. Kusura bakmayın.
Ayrıca bildiğim kadarıyla UNION aynı olmayan yani ayrı tablolardaki aynı adlı alanlar için kullanılıyor. Denemiştim ama olmamıştı. Yanlış biliyor da olabilirim.
Sorunum hala devam ediyor...