Tek bir json nesne içine iki farklı tablo verileri birleştirmek için nasıl

1 Cevap php

iam aşağıdaki sorgu tarafından bir json nesnesi yapma

    $arr = array();
        $qs=qq("select main_cat_id,main_cat_name,id,name,cat_id,cat_id_main from main,scheme where main_cat_name='xyz' and cat_id_main=main_cat_id");
        while($obj = mysql_fetch_object($qs))
        {
            $arr[] = $obj;
        }
        $total=sizeof($arr);
        $jsn_obj='{"scheme":'.json_encode($arr).',"totalrow":"'.$total.'"}';

 // this is a mock example

Şimdi başka bir sorgu sahip iam

Sorgu 2:

    $q=qq("select main_cat_id,main_cat_name,id,name,cat_id,cat_id_main from main,scheme where main_cat_name='xyz' and cat_id_main=main_cat_id order by scheme_1_year DESC");
    while($r=mysql_fetch_array($q))
    {
        $cats_id=$r['cat_id'];
        if($cats_id!=0)
        {
        	$qw=qq("select cat_name from category where cat_id='$cats_id'");  // Query 3
        	$rw=mysql_fetch_array($qw);
        	$catm_name=$rw['cat_name'];
        }
    }
// this is a mock example

ikisi de aynı şeyi yapıyor ama daha sonra well.This kategori tablo yüzden başka bir sorgu ile bu cat_name hesaplamak zorunda önceki iki tablo ile birleşti cant gibi bazı kediler isim hesaplıyor.

Now i want a json object that should be having all the entries of Query 2 and respective Query 3 result. sumthing like this (if explained in simple words): query 2 result[0] plus query 3 result[0],query 2 result[1] plus query 3 result[1]

Nasıl bir json nesne birlikte i kulübü bu iki sonucu olabilir. Plz kılavuz!

1 Cevap

Eğer tablo kategorisinde ve ana veya düzeni birinde cat_id var gibi görünüyor. Bir sorgunun iki farklı tablolarda oluşan bir sütun adını kullanırken, size sütun adını kullanmak zaman bahsediyoruz hangi tablo belirlemek gerekir.

Ben sütunları hangi tablodan hangi bilmek şema yok, ama burada onlara katılmak için nasıl bir tahmin. (Not: virgül daha kolay okunmasını sağlamak için sonra boşluk eklenmiştir)

$q=qq("select main_cat_id, main_cat_name, id, name, scheme.cat_id, cat_id_main, category.cat_name from main, scheme, category where main_cat_name='xyz' and cat_id_main=main_cat_id and scheme.cat_id=category.cat_id order by scheme_1_year DESC");

Alternatif olarak, tablo diğer adları kullanabilirsiniz.

$q=qq("select main_cat_id, main_cat_name, id, name, s.cat_id, cat_id_main, c.cat_name from main m, scheme s, category c where main_cat_name='xyz' and cat_id_main=main_cat_id and s.cat_id=c.cat_id order by scheme_1_year DESC");

Orijinal qq dan cat_id main yerine ise scheme, o zaman buna göre sorgu ayarlamak zorunda olacak. Bu hala tablo takma adları ile veya olmadan yapılabilir.

$q=qq("select main_cat_id, main_cat_name, id, name, main.cat_id, cat_id_main, category.cat_name from main, scheme, category where main_cat_name='xyz' and cat_id_main=main_cat_id and main.cat_id=category.cat_id order by scheme_1_year DESC");
$q=qq("select main_cat_id, main_cat_name, id, name, m.cat_id, cat_id_main, c.cat_name from main m, scheme s, category c where main_cat_name='xyz' and cat_id_main=main_cat_id and .cat_id=c.cat_id order by scheme_1_year DESC");

Iki farklı tablolardan iki sütunları seçmek için tek sorgu istiyorsanız ve sütunları aynı adı varsa ek bir not, o sütun takma ad kullanması gerekir. Bu yeteneği, şemalar (veya en azından kolon isimleri) basitleştirmek ve daha kolay takip yapmak olabilir gibi (örneğin, select ... category.cat_name as category_cat_name from main, ...) görünüyor.