我有一个页面正在使用php查询数据库很多次,并且正在重复;查询块也在其间穿插着html。一个例子是
<?php
--code here--
SELECT DISTINCT `Retailer`
FROM `product`
WHERE `Product` = 'iPad 2'
--continue code here--
?>
html content here
<?php
--code here--
SELECT DISTINCT `Brand`
FROM `product`
WHERE `Product` = 'iPad 2'
--continue code here--
?>
重复几次。查询所在的页面需要与其他页面重复,但“产品”行必须更改(例如,Product
='iPhone')。目前,每个查询都位于单独的PHP代码块中,因此我必须转到引用它的每个位置来更改它。是否可以在文档顶部放置一个我可以更改的位置?如果是这样,我该怎么做?
答案 0 :(得分:0)
你可能想写一些你可以重用的function
:
function get_product($column, $name) {
return db("SELECT DISTINCT `$column` FROM `product` WHERE `Product` = ?", $name);
}
然后只需在页面顶部设置一个变量$product_name
,然后重复使用它来发出查询。 (如果这就是你的意思。)
$product_name = "iPad 2";
...
get_product("Retailer", $product_name);
...
get_product("Brand", $product_name);
...
get_product("Price", $product_name);
答案 1 :(得分:0)
我个人喜欢使用$_GET
变量来做这样的事情,使用mod_rewrite
来生成不包含变量的必要URL。我假设你的一些html也会随着查询的WHERE
行而改变。你可以尝试这样的事情:
产品页面的链接
<ul>
<li><a href="products/index.php?product=ipad2">iPad 2</a></li>
<li><a href="products/index.php?product=iphone4s">iPhone 4S</a></li>
</ul>
products / index.php文件
<?php
$product = $_GET['product'];
//various code
$retailer_result = mysql_query("SELECT DISTINCT Retailer FROM product WHERE Product = '$product'");
//more code
//define and require the html document
$product_page_dir = "products/pages/";
$product_page_path = $product_page_dir . $product;
require $product_page_path;
//more various code
$brand_result = mysql_query("SELECT DISTINCT Brand FROM product WHERE Product = '$product'");
//the rest of the code
这是使用此方法执行此操作的最简单方法。不要忘记建立连接MySQL并在任何查询之前选择数据库。另请注意,您还应该包括错误处理。注意:上面的代码未经测试。