首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Where子句if null show all,if where = $variable show $variable

Where子句if null show all,if where = $variable show $variable
EN

Stack Overflow用户
提问于 2014-08-29 16:41:23
回答 2查看 70关注 0票数 0

我有点被我正在做的代码卡住了。

下面是我已经有的代码

HTML代码:

代码语言:javascript
运行
复制
<form method="post" action="index.php" >
<select name="sortby" class="sortby" >
        <option value=" ORDER BY id DESC">Date Added (Newest First)</option>
        <option value=" ORDER BY id ASC">Date Added (Oldest First)</option>
        <option value="ORDER BY clicks DESC">Website Clicks </option>
        <input type="submit" value="Submit"  />
      </select>
</form>
<form method="post" action="index.php">
<select name="country" class="sortby">
<option value="">Country...</option>
<option value="AF">Afghanistan</option>
<option value="AL">Albania</option>
<option value="DZ">Algeria</option>
<option value="AS">American Samoa</option>
<option value="AD">Andorra</option>
.... and so on
</select>
<input type="submit" value="Submit"  />

PHP代码:

代码语言:javascript
运行
复制
$sortby = $_POST['sortby'];
$sortby = $mysqli->real_escape_string($sortby);
$country = $_POST ['country'];
$country = $mysqli->real_escape_string($country);


$results = $mysqli->query("SELECT id, link, image, title, description, country, clicks FROM isc_links WHERE approved=1 $sortby");


while($row = $results->fetch_assoc()) {

    print '<div id="linkmainwrapper"><div id="linkwrapper"><div class="linkimageborder"><div class="linkimage"><a href="http://'.$row["link"].'" target="_blank">'.$row["image"].'</a></div></div>';
    print '<div class="linktitle"><a href="clickcounter.php?id='.$row["id"].'" target="_blank">'.$row["title"].'</a></div>';
    print '<div class="link">('.$row["link"].')</div>';
    print '<div class="countryflag"><img src="http://www.hatblocksdirect.co.uk/lib/flags/'.$row["country"].'.gif"></div>';

    print '<div class="linkdescription">'.$row["description"].'</div>';
    print '<div class="clickcount">Website Clicks ('.$row["clicks"].')</div></div></div>';

我想做的是对列进行排序。第一个排序框起作用,我可以使用$sortby按网站点击量、id等进行排序。

我使用select下拉菜单传递了$country,但我不知道如何在select查询中实现它。我需要它来显示所有条目,如果一个国家还没有被选择。选择国家/地区后,仅显示该国家/地区。

非常感谢您的帮助

EN

回答 2

Stack Overflow用户

发布于 2014-08-29 16:49:46

根据是否提供参数,将WHERE子句的附加条件放入变量中。

代码语言:javascript
运行
复制
if (!empty($_POST['country'])) {
    $country = "AND country = '" . $mysqli->real_escape_string($country) . "'";
} else {
    $country = "";
}

$results = $mysqli->query("SELECT id, link, image, title, description, country, clicks FROM isc_links WHERE approved=1 $country $sortby");
票数 0
EN

Stack Overflow用户

发布于 2014-08-29 16:50:06

使用if条件,如

代码语言:javascript
运行
复制
if(isset($_POST ['country']))
{    // if country is set
   $country = $mysqli->real_escape_string($_POST ['country']);
   $sql="SELECT id, link, image, title, description, country, clicks FROM isc_links WHERE approved=1 and country='$country' $sortby";
}
else
{  // if country is not se
   $sql="SELECT id, link, image, title, description, country, clicks FROM isc_links WHERE approved=1 $sortby";
}
$results = $mysqli->query($sql);    // execute the query
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25564668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档