查询MySql表

时间:2014-10-29 15:46:55

标签: php mysql

我是mysql的新手......我正在研究别人的程序。我有2个表产品和卖家。连接这些表,并在Seller表中建立连接。我想在Products表中显示Product name,并显示已进行产品输入的卖方。

这是我显示产品表的方式:

public function getProductName($product_id,$language_id) {
$query = $this->db->query("SELECT name FROM " . DB_PREFIX . "product_description WHERE
                           product_id = '".(int)$product_id."' 
                           AND language_id = '".(int)$language_id."'");
    if($query->row AND $query->row['name'] != '') { 
     return $query->row['name'];
   } else { 
       return '-';
    }
}

卖方表格包含字段seller_nameseller_idsproduct_id。如何为每种产品提取相关的卖家名称?

感谢任何帮助!

谢谢, 汤姆

2 个答案:

答案 0 :(得分:0)

您希望将两个表一起加入公共product_id密钥。这是你想要的结果Sql。另外,如果product_id和language_id是数据库中的整数(因为它们似乎是在PHP中),那么您可以放弃'':

"SELECT pd.name, s.seller_name
 FROM " . DB_PREFIX . ".product_description pd 
    INNER JOIN " . DB_PREFIX . ".Seller s on pd.product_id = s.sproduct_id
 WHERE 
     product_id = ".(int)$product_id."
     AND language_id = ".(int)$language_id.";";

答案 1 :(得分:0)

使用您的代码:

public function getProductName($product_id, $language_id)
{

    $strSQL = "SELECT p.name, s.seller_name FROM " . DB_PREFIX .
              "product_description p INNER JOIN " . DB_PREFIX . 
              "Seller s ON p.product_id = s.sproduct_id WHERE product_id = '" .
              intval($product_id) . "' AND language_id = '" .
              intval($language_id) . "'";

    $query = $this->db->query($strSQL);
    if($query->row AND $query->row['name'] != '') { 
        return $query->row['name'];
    } else { 
        return '-';
    }
}

如果product_id和language_id是整数值,则不需要将它们括在''中。还要记住添加错误检查以确保$ product_id和$ language_id具有查询的有效值。有关SQL joins的更多信息。快乐的编码。