Php with html:创建主变量

时间:2011-11-30 14:21:27

标签: php mysql html

我有一个页面正在使用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代码块中,因此我必须转到引用它的每个位置来更改它。是否可以在文档顶部放置一个我可以更改的位置?如果是这样,我该怎么做?

2 个答案:

答案 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并在任何查询之前选择数据库。另请注意,您还应该包括错误处理。注意:上面的代码未经测试。