我正在根据不同的SQL查询制作返回JSON的自定义终端 - 查询是基于我从我的应用传递的多个查询字符串创建的。我所做的很简单,希望知道是否有更好的方法来达到与下面的结果相同的结果:将查询字符串传递给使用PHP的PDO sql查询
以下仅仅是所有IF/Else语句检查不同的一小部分查询字符串
if(isset($_GET['pt']) && !isset($_GET['c']) && !isset($_GET['sc']) && isset($_GET['size'])) {
$sql = "SELECT *
FROM product
INNER JOIN product_sizes
ON product.product_sku = product_sizes.affiliate_p_id
WHERE product_sizes.product_type IN (".$_GET['pt'].")
AND product_sizes.product_sizes IN (".$_GET['size'].")
GROUP BY product_sizes.affiliate_p_id
ORDER BY product.last_updated ASC
LIMIT 100";
} else {
$sql = "SELECT *
FROM product
INNER JOIN product_sizes
ON product.product_sku = product_sizes.affiliate_p_id
GROUP BY product_sizes.affiliate_p_id
ORDER BY product.last_updated ASC
LIMIT 100";
}
$result = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
$return = array();
foreach ($result as $row) {
$return[] = array(
'affiliate_p_id' => $row['affiliate_p_id'],
'affiliate_id' => $row['affiliate_id'],
'product_colours' => $row['product_colours'],
'product_sub_category' => $row['product_sub_category'],
'merchant_name' => $row['merchant_name'],
'product_type' => $row['product_type'],
'product_sizes' => $row['product_sizes'],
'product_name' => $row['product_name'],
'sale_price' => $row['sale_price'],
'rrp_price' => $row['rrp_price'],
'product_image' => $row['product_image'],
'product_slug' => $row['product_slug']
);
}
$dbh = null;
header('Content-type: application/json');
echo json_encode($return);
按照预期的代码已经在运行?你只想讨论是否有更好的方法来做到这一点? –
是的!它看起来笨重,并会知道是否有更好的方法 –
这种问题应该是典型的http://codereview.stackexchange.com/和某种方式offnoteic上SO –