• 13-04-2017, 15:42:14
    #1
    Aşağıdaki gibi bir tablom var.
    id | name  | packet_1 
    ----------------------------
    1  | John  |  ppp 
    2  | Maria |  pbt 
    3  | Jay   |  pbt 
    4  | Jay   |  ppp 
    5  | John  |  ptt 
    6  | Jay   |  ppp 
    7  | Maria |  pxx
    Fakat ben bunu sitede gösterirken şu şekilde göstermem gerekiyor:
    name   | ppp | pbt | ptt | pxx
    John   | 1   |  0  |  1  |  0
    Maria  | 0   |  1  |  0  |  1
    Jay    | 2   |  1  |  0  |  0
    Bunu nasıl yapabilirim.
  • 13-04-2017, 16:14:41
    #2
    Selam!

    select *, COUNT(packet_1) as count from sample GROUP BY `name`,packet_1
    bu kod sana şöyle bir çıktı verecek :
    3	Jay	pbt	1
    4	Jay	ppp	2
    1	John	ppp	1
    5	John	ptt	1
    2	Maria	pbt	1
    7	Maria	pxx	1
    Bu kodla çektiğin tablodan verileri arraylar yardımıyla packet_1 e göre gruplayarak da işlemini gerçekleştirebilirsin. Ya da gelen veriyi sanal bir tablo olarak düşünüp, dışına şöyle :

    select *,SUM(count) as count_final from (select *, COUNT(packet_1) as count from
     sample GROUP BY `name`,packet_1) as sample GROUP BY sample.`name`
    ÇIKTI
    Id	name		packet_1	count		count_total
    3	Jay		pbt		1		3
    1	John		ppp		1		2
    2	Maria		pbt		1		2
    bir kodla genişletip, istediğin haliyle sitede yazdırabilirsin.
  • 13-04-2017, 16:19:35
    #3
    toplumdusmani adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki gibi bir tablom var.
    id | name  | packet_1 
    ----------------------------
    1  | John  |  ppp 
    2  | Maria |  pbt 
    3  | Jay   |  pbt 
    4  | Jay   |  ppp 
    5  | John  |  ptt 
    6  | Jay   |  ppp 
    7  | Maria |  pxx
    Fakat ben bunu sitede gösterirken şu şekilde göstermem gerekiyor:
    name   | ppp | pbt | ptt | pxx
    John   | 1   |  0  |  1  |  0
    Maria  | 0   |  1  |  0  |  1
    Jay    | 2   |  1  |  0  |  0
    Bunu nasıl yapabilirim.
    Eğer packet_1 değerin sabit ise bu şekilde de yapabilirsin.

    Örnek olmak açısından bende ekleyim.

    <?php
    echo '<table width="500" border="1">
      <tr height="24">
        <td width="60%">name</td>
        <td width="10%">ppp</td>
        <td width="10%">pbt</td>
        <td width="10%">ptt</td>
        <td width="10%">pxx</td>
      </tr>';
    $verileri_cekelim=mysql_query("select id, name, packet_1 from tabloadi order by name asc");
    while($goster=mysql_fetch_array($verileri_cekelim)){
    $id=$goster["id"];
    $name=$goster["name"];
    $packet=$goster["packet_1"];
    $ppp=mysql_num_rows(mysql_query("select id from tabloadi where packet_1='ppp'"));
    $pbt=mysql_num_rows(mysql_query("select id from tabloadi where packet_1='pbt'"));
    $ptt=mysql_num_rows(mysql_query("select id from tabloadi where packet_1='ptt'"));
    $pxx=mysql_num_rows(mysql_query("select id from tabloadi where packet_1='pxx'"));
    echo '<tr height="24">
        <td width="60%">'.$name.'</td>
        <td width="10%">'.$ppp.'</td>
        <td width="10%">'.$pbt.'</td>
        <td width="10%">'.$ptt.'</td>
        <td width="10%">'.$pxx.'</td>
      </tr>';
    }
    echo '</table>';
    ?>
  • 13-04-2017, 16:31:51
    #4
    yok hocam sabit değil o nedenle zorlandım zaten. diğer arkadaşımın dediğini deniyorum şimdi.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:31:51 -->-> Daha önceki mesaj 16:24:27 --

    DWather adlı üyeden alıntı: mesajı görüntüle
    Selam!

    select *, COUNT(packet_1) as count from sample GROUP BY `name`,packet_1
    bu kod sana şöyle bir çıktı verecek :
    3	Jay	pbt	1
    4	Jay	ppp	2
    1	John	ppp	1
    5	John	ptt	1
    2	Maria	pbt	1
    7	Maria	pxx	1
    Bu kodla çektiğin tablodan verileri arraylar yardımıyla packet_1 e göre gruplayarak da işlemini gerçekleştirebilirsin. Ya da gelen veriyi sanal bir tablo olarak düşünüp, dışına şöyle :

    select *,SUM(count) as count_final from (select *, COUNT(packet_1) as count from
     sample GROUP BY `name`,packet_1) as sample GROUP BY sample.`name`
    ÇIKTI
    Id	name		packet_1	count		count_total
    3	Jay		pbt		1		3
    1	John		ppp		1		2
    2	Maria		pbt		1		2
    bir kodla genişletip, istediğin haliyle sitede yazdırabilirsin.
    Hocam maalesef istediğim gibi bir tabloya dönüşmüyor. Yani üye sütunu ve packet_1 kadar paket ismi sütunu (<td>) yan yan yazdıramadım. adetleri alıyorum ama yana basamıyorum. Yani üye adlarını alt altta <tr> array fakat paketleri yan yana array <td> basmak lazım ama olmadı.
  • 13-04-2017, 16:37:17
    #5
    packet_1 için bir tablon vardır o zaman sabit değilse?

    packet_1 in ana tablosunuda paylaşırmısın?
  • 13-04-2017, 16:43:49
    #6
    chedmade adlı üyeden alıntı: mesajı görüntüle
    packet_1 için bir tablon vardır o zaman sabit değilse?

    packet_1 in ana tablosunuda paylaşırmısın?
    packet_1 tablosunda gelen veriyi evet başka bir tabloda ama sabit değil her hafta yeni bir data eklenebilir.

    tablo adı: kalemler
    id | ad | malzeme_tip_id | grup
    1 | ppp | 2 | sonline
    2 | ppt | 1 | vphone
    gibi bir yapısı var
  • 14-04-2017, 09:42:51
    #7
    chedmade adlı üyeden alıntı: mesajı görüntüle
    packet_1 için bir tablon vardır o zaman sabit değilse?

    packet_1 in ana tablosunuda paylaşırmısın?
    Hala çözüm bulamadım yardımcı olabilecek var mı..
  • 14-04-2017, 10:27:20
    #8
    toplumdusmani adlı üyeden alıntı: mesajı görüntüle
    packet_1 tablosunda gelen veriyi evet başka bir tabloda ama sabit değil her hafta yeni bir data eklenebilir.

    tablo adı: kalemler
    id | ad | malzeme_tip_id | grup
    1 | ppp | 2 | sonline
    2 | ppt | 1 | vphone
    gibi bir yapısı var
    <?php 
    echo '<table width="%100" border="1" cellspacing="2" cellpadding="2">
      <tr>
        <td width="%30">name</td>';
    $verileri_cekelim=mysql_query("select id, ad from paketler");
    while($yazdir=mysql_fetch_array($verileri_cekelim)){
    	$packet_id=$yazdir["id"];
    	$packet_ad=$yazdir["ad"];
    echo '<td width="%10">'.$packet_ad.'</td>';
    }
    echo '</tr>';
    $verileri_cekelim=mysql_query("select id, name, packet_1 from isimler group by name");
    while($yazdir=mysql_fetch_array($verileri_cekelim)){
    	$isim_id=$yazdir["id"];
    	$isim_name=$yazdir["name"];
    	$packet_1=$yazdir["packet_1"];
    echo '<tr>
        <td width="%10">'.$isim_name.'</td>';
    $verileri_cekelimx=mysql_query("select id, ad from paketler");
    while($yazdirx=mysql_fetch_array($verileri_cekelimx)){
    	$packet_id=$yazdirx["id"];
    	$packet_ad=$yazdirx["ad"];
    	$sayalim=mysql_num_rows(mysql_query("select id from isimler where packet_1='$packet_ad' and name='$isim_name'"));
    echo '<td width="%10">'.$sayalim.'</td>';
    }
      echo '</tr>';
     }
    echo '</table>';
    ?>
    Biraz karışık oldu ama test ettim senin için istediğin gibi oldu.

    tablo isimlerini düzenlemen gerekiyor.
  • 14-04-2017, 10:49:41
    #9
    chedmade adlı üyeden alıntı: mesajı görüntüle
    <?php 
    echo '<table width="%100" border="1" cellspacing="2" cellpadding="2">
      <tr>
        <td width="%30">name</td>';
    $verileri_cekelim=mysql_query("select id, ad from paketler");
    while($yazdir=mysql_fetch_array($verileri_cekelim)){
    	$packet_id=$yazdir["id"];
    	$packet_ad=$yazdir["ad"];
    echo '<td width="%10">'.$packet_ad.'</td>';
    }
    echo '</tr>';
    $verileri_cekelim=mysql_query("select id, name, packet_1 from isimler group by name");
    while($yazdir=mysql_fetch_array($verileri_cekelim)){
    	$isim_id=$yazdir["id"];
    	$isim_name=$yazdir["name"];
    	$packet_1=$yazdir["packet_1"];
    echo '<tr>
        <td width="%10">'.$isim_name.'</td>';
    $verileri_cekelimx=mysql_query("select id, ad from paketler");
    while($yazdirx=mysql_fetch_array($verileri_cekelimx)){
    	$packet_id=$yazdirx["id"];
    	$packet_ad=$yazdirx["ad"];
    	$sayalim=mysql_num_rows(mysql_query("select id from isimler where packet_1='$packet_ad' and name='$isim_name'"));
    echo '<td width="%10">'.$sayalim.'</td>';
    }
      echo '</tr>';
     }
    echo '</table>';
    ?>
    Biraz karışık oldu ama test ettim senin için istediğin gibi oldu.

    tablo isimlerini düzenlemen gerekiyor.
    Üstad @chedmade bu süper olmuş, harika çalıştı. Aynı mantıkla gitmiştim ama yan yana bir türlü basamamıştım çok çok teşekkür ederim. Dert görmeyesin inşallah..