Php - Verilerin Birleştirilerek Gösterilmesi
-
Abiler ablalar teyzeler amcalar sorunum şu ki;
database'de 4 adet veri olduğunu düşünün
id | veri1 | veri2 |veri3
1 abc 23 3
2 def 33 5
3 abc 44 2
4 ghj 29 3
5 def 28 6
Şimdi ben bu verileri çekerken değeri abc olanları toplasın ve bir abc satırında göstersin def olanlarıda aynı yapsın istiyorum.
yani ben verileri çektiğimde görüntünün
abc 69 5
def 61 11
ghj 29 3 olmasını istiyorum. php de böyle bir özellik muhakkak var ancak nasıl yapacağım bilemedim. Umarım anlatabilmişimdir. Çok sağolun şimdiden;)
-
rs.open "select discint(veri1) from veriler",baglanti,1,3
do until rs.eof
intToplamx="select sum(veri2) from veriler where veri1='"&rs("veri1")&"'"
intToplam=intToplamx(0)
response.write intToplam
rs.movenext
loop
rs.closeşimdi yazdım hocam denemedim ama çalışması gerek. mantığını anlatmak için yazdım asp ile, php bilgim pek yok umarım yararlı olur :/
-
$aranan = "tanımla burayıda "; yada başka bi sql döngüsü ile bun yazdır aşşağıda aynı olanları arat.
$sor= mysql_query("SELECT * FROM asd WHERE baslik LIKE '%$aranan%'"); // burda ara bul kendine göre
if(mysql_num_rows($sor) > 0){
$a = 0;
While($yaz=mysql_fetch_array($sor)){
$veribir = $yaz["veri1"];$a = ($veribir + $a);
Bu şekilde bi mantık yürütebilirsin
}
echo "".$aranan." da bu kadar veri bulundu : ".$a"";
}
-
Fikret bunu yazdı:
-----------------------------
rs.open "select discint(veri1) from veriler",baglanti,1,3
do until rs.eof
intToplamx="select sum(veri2) from veriler where veri1='"&rs("veri1")&"'"
intToplam=intToplamx(0)
response.write intToplam
rs.movenext
loop
rs.closeşimdi yazdım hocam denemedim ama çalışması gerek. mantığını anlatmak için yazdım asp ile, php bilgim pek yok umarım yararlı olur :/
-----------------------------Fikret hocam
| intToplamx="select sum(veri2) from veriler where veri1='"&rs("veri1")&"'" |
bana php de buranın eşiti lazım yani veri1lerin aynı olduğu yer ne demek onu bilmiyorum bi bilsem halledicem.
Zxone hocam o senin dediğinle yalnız aranan sözcüklerde birleştirebiliriz onu ben de düşünmüştüm ama ben bütün verilerin listelesin veri1 değerleri aynı olanların veri2 ve veri3 sütunlarını toplasın istiyorum. Bunları da sırayla göstersin.
-
up :|
-
ZoRKaYa bunu yazdı:
-----------------------------
up :|
-----------------------------hocam arraya al aynı verileri sonra toplat ben böyle derinlemesine anlatamam pm at istersen
-
cosmic bunu yazdı:
-----------------------------
ZoRKaYa bunu yazdı:
-----------------------------
up :|
-----------------------------hocam arraya al aynı verileri sonra toplat ben böyle derinlemesine anlatamam pm at istersen
-----------------------------layn velet :Q burayada yaz madem derinlemesine bakaruk :) üstadım :)
-
hocam sadece mantığını anlatayım ;
mysql_query('SELECT DISTINCT veri1 FROM tablo')
dediğin zaman, hepsini tek tek alır.Yani abc'yi bir kere bastırır, def'i bir kere.bunları tek tek array'a atabilirsin.Daha sonra sorgularında aray'ı kullanarak, benzer olanları çekebilirsin.Yani ;
cek['a1']='abc';
cek['a2']='def';olur mesela, oradaki 1,2 değişken olur, while ile değişkene bağlarsın.Daha sonra sorguda arrayları tek tek çektirip toplatırsın.Yani veri1 kısmındaki abc'leri sonuc değişkeninde tek tek toplayabilirsin.
Fakat sql ile daha kolay yolu vardır sanıyorum.
-
$verilerquery=mysql_query("SELECT DISTINCT veri1 FROM veriler");
$anaarray=array();
while($i=mysql_fetch_array($verilerquery)){
$veri=$i['veri1'];
$veriarray[$veri]=array();
$veriarray2[$veri]=array();
$toplam[$veri]=array();
array_push($anaarray,$veri);
}
$veriler2query=mysql_query("SELECT * FROM veriler");
while($z=mysql_fetch_array($veriler2query)){
$veri1=$z['veri1'];
$veri2=$z['veri2'];
$veri3=$z['veri3'];
array_push($veriarray[$veri1],$veri2);
array_push($veriarray2[$veri1],$veri3);
}
foreach($anaarray as $oo){
foreach($veriarray[$oo] as $ilk){
$toplam[$oo][0]=$toplam[$oo][0]+$ilk;
}
}
echo $toplam['abc'][0];böyle :(
edit: tüh veri2 için unutmuşum yapmayı ama alttaki foreachtaki gibi yapcaksın
