මට SQL හෙල්ප් එකක් දීපල්ලකෝ ?

sajith.xp.pk

Well-known member
  • Nov 12, 2008
    6,100
    4,230
    113
    Sri Lanka
    මෙන්න මෙහෙමයි මචං කරන්නෙ ඒක...

    මේ තියෙන්නෙ SQL structure එක.

    vehicle
    + id (AI)
    + owner_name
    + reg_no
    + brand_id
    + category_id
    + type_id

    brand
    + id (AI)
    + name

    category
    + id (AI)
    + name

    type
    + id (AI)
    + name

    මේ විදියට SQL Tables ටික හදපන්...

    හදල මෙන්න මේ විදියට වැඩේ ගොඩ දාපන්...


    <?php
    $brand_id = $_GET['brand_id'];
    $category_id = $_GET['category_id'];
    $type_id = $_GET['type_id'];

    $result = mysqli_query($link, "SELECT * FROM `vehicle` WHERE `brand_id` = '{$brand_id}' AND `category_id` = '{$category_id}' AND `type_id` = '{$type_id}' ");

    while($row = mysqli_fetch_array($result)){
    echo $row['owner_name']." - ".$row['reg_no'];
    }
    ?>

    ඔච්චරයි
     

    hspa3.5

    Well-known member
  • Sep 23, 2009
    4,539
    543
    113
    my world
    මෙන්න මෙහෙමයි මචං කරන්නෙ ඒක...

    මේ තියෙන්නෙ SQL structure එක.

    vehicle
    + id (AI)
    + owner_name
    + reg_no
    + brand_id
    + category_id
    + type_id

    brand
    + id (AI)
    + name

    category
    + id (AI)
    + name

    type
    + id (AI)
    + name

    මේ විදියට SQL Tables ටික හදපන්...

    හදල මෙන්න මේ විදියට වැඩේ ගොඩ දාපන්...


    <?php
    $brand_id = $_GET['brand_id'];
    $category_id = $_GET['category_id'];
    $type_id = $_GET['type_id'];

    $result = mysqli_query($link, "SELECT * FROM `vehicle` WHERE `brand_id` = '{$brand_id}' AND `category_id` = '{$category_id}' AND `type_id` = '{$type_id}' ");

    while($row = mysqli_fetch_array($result)){
    echo $row['owner_name']." - ".$row['reg_no'];
    }
    ?>

    ඔච්චරයි

    dropdowns වලට Brand, category, type wala ids tika values walata dagena names tika view wenna daala form eka hadapan

    thanks macho help එකට.ඕක live දුවන සිස්ටම් එකක් බන් දැන් table change කරන්න බැ බන්.

    You must spread some Reputation around before giving it to sajith.xp.pk again.
     

    sajith.xp.pk

    Well-known member
  • Nov 12, 2008
    6,100
    4,230
    113
    Sri Lanka
    ඔන්න ඕක තමයි ER Diagram එකක් වගේ ඇඳල හරි විදියට SQL Structure එක ගහ ගත්තෙ නැත්නම් වෙන දේ... පේනවනෙ දැන්...
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,961
    1
    9,770
    113
    Gampaha
    SELECT * FROM products AS p LEFT JOIN products_attributes AS pa ON p.product_id = pa.product_id WHERE pa.attribute_type = 'Brand' AND pa.attribute_value = 'ABC'

    :):)
     
    • Like
    Reactions: hspa3.5

    hspa3.5

    Well-known member
  • Sep 23, 2009
    4,539
    543
    113
    my world
    SELECT * FROM products AS p LEFT JOIN products_attributes AS pa ON p.product_id = pa.product_id WHERE pa.attribute_type = 'Brand' AND pa.attribute_value = 'ABC'

    :):)

    This may be work. try this machan... no experience with join queries..


    parameter 2ක් දැම්ම ගමන් එන්නේ කිසිම රිසල්ට් එකක් එන්නේ නැ බන්

    ex :
    SELECT * FROM products AS p LEFT JOIN products_attributes AS pa ON p.product_id = pa.product_id WHERE

    pa.attribute_type = 'Brand' AND pa.attribute_value = 'ABC' and

    pa.attribute_type = 'Category' AND pa.attribute_value = 'XYZ'
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,961
    1
    9,770
    113
    Gampaha
    parameter 2ක් දැම්ම ගමන් එන්නේ කිසිම රිසල්ට් එකක් එන්නේ නැ බන්

    ex :
    SELECT * FROM products AS p LEFT JOIN products_attributes AS pa ON p.product_id = pa.product_id WHERE

    pa.attribute_type = 'Brand' AND pa.attribute_value = 'ABC' and

    pa.attribute_type = 'Category' AND pa.attribute_value = 'XYZ'
    ඉතිං එන්නෙ නෑ නේන්නම්.. ඕක sql වලින් නෙමේ උබ සාමාන්‍ය විදියට හිතල බලපන්කො ඔය conditions true වෙන result එක මොකද්ද කියල. එහෙම result එකක් exist වෙන්නෙ නෑ.

    PHP:
    SELECT * FROM products AS p LEFT JOIN products_attributes AS pa ON   p.product_id = pa.product_id WHERE (pa.attribute_type = 'Brand' AND   pa.attribute_value = 'ABC') OR (pa.attribute_type = 'Category' AND   pa.attribute_value = 'XYZ')

    ඔතන LEFT JOIN දාල තියෙන්නෙ එක product එකකට attributes තිබ්බෙ නැතත් ඒ product එක result එකට එනව.

    attributes නැති products එපා නම් INNER JOIN එක USE කරන්න.

    PHP:
    SELECT * FROM products AS p INNER JOIN products_attributes AS pa ON   p.product_id = pa.product_id WHERE (pa.attribute_type = 'Brand' AND   pa.attribute_value = 'ABC') OR (pa.attribute_type = 'Category' AND   pa.attribute_value = 'XYZ')
     

    shenic

    Member
    May 9, 2013
    13,213
    1,290
    0
    Bermuda ∆
    Godak aya godak honda solutions deela thiyenne ban. :cool:
    Oya MihiCherub ehema professional.
    Anith ayath ehema athi.

    Oya redda thaama hari gassa gaththe nadda? :angry:
     

    hspa3.5

    Well-known member
  • Sep 23, 2009
    4,539
    543
    113
    my world
    ඉතිං එන්නෙ නෑ නේන්නම්.. ඕක sql වලින් නෙමේ උබ සාමාන්‍ය විදියට හිතල බලපන්කො ඔය conditions true වෙන result එක මොකද්ද කියල. එහෙම result එකක් exist වෙන්නෙ නෑ.

    PHP:
    SELECT * FROM products AS p LEFT JOIN products_attributes AS pa ON   p.product_id = pa.product_id WHERE (pa.attribute_type = 'Brand' AND   pa.attribute_value = 'ABC') OR (pa.attribute_type = 'Category' AND   pa.attribute_value = 'XYZ')

    ඔතන LEFT JOIN දාල තියෙන්නෙ එක product එකකට attributes තිබ්බෙ නැතත් ඒ product එක result එකට එනව.

    attributes නැති products එපා නම් INNER JOIN එක USE කරන්න.

    PHP:
    SELECT * FROM products AS p INNER JOIN products_attributes AS pa ON   p.product_id = pa.product_id WHERE (pa.attribute_type = 'Brand' AND   pa.attribute_value = 'ABC') OR (pa.attribute_type = 'Category' AND   pa.attribute_value = 'XYZ')

    ela machan man balannam,...

    kohomahari wenna one meka

    product_attribute table එකෙන් brand එකයි category ,type parameter විදිහට දීල product ටික select කරගන්න ඕනේ..

    ex: brand : Toyota
    category :sedan
    type :petrol vehicle නම් ටික ගන්න ඕනේ.
     

    hspa3.5

    Well-known member
  • Sep 23, 2009
    4,539
    543
    113
    my world
    AND නැතුව OR දීල බලපන් Query එක වැඩද කියල.

    OR dammoth jathi dekama enava ban..


    ex: brand =toyota OR category =sedan

    toyota hatchback ewath enava ban..toyotage sedan eva vitharai enna one...

    ex eka avul nam kiyapan mata tak gala mathak une oka ban