Php SQL查询值从$\u GET更改

Php SQL查询值从$\u GET更改,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,如何从Php修改MySQL查询,所以如果我选择ALL,将不会出现Where语句,如果我选择某个用户登录,将只显示该用户记录? 例如,如果我选择了ALLQuery将不带WHERE语句,但如果我选择了Admin则此查询中将有WHERE tsales\u funnel.Darijuma\u vaditajs='Admin' SQL语句: $sql = "Select tsales_funnel.ID As ID, wp_users.display_name As Darijuma_vadita

如何从Php修改MySQL查询,所以如果我选择ALL,将不会出现Where语句,如果我选择某个用户登录,将只显示该用户记录? 例如,如果我选择了
ALL
Query将不带WHERE语句,但如果我选择了
Admin
则此查询中将有
WHERE tsales\u funnel.Darijuma\u vaditajs='Admin'

SQL语句:

$sql = "Select
  tsales_funnel.ID As ID,
  wp_users.display_name As Darijuma_vaditajs,
  tcportal_starpnieks.Cp_Name As Starpnieks,
  tcportal_stucture.Cp_Name As OWCA,
  n_products.Product_Nos As Produkts,
  tsales_funnel_mrecord.Deadline As Deadline,
  tsales_funnel_clients.Reg_nr As Klienta_Regnr,
  tfirmas_reg.name_in_quotes As Klients,
  tsales_funnel_mrecord.ID As Prod_ID,
  tsales_funnel.Statuss As Statuss
From
  tsales_funnel Left Join
  tsales_funnel_mrecord On tsales_funnel_mrecord.Funnel_ID = tsales_funnel.ID
  Left Join
  tcportal_starpnieks On tcportal_starpnieks.Cp_code = tsales_funnel.Starpnieks
  Left Join
  tcportal_stucture On tcportal_stucture.Cp_code = tsales_funnel.OWCA Left Join
  tsales_funnel_clients On tsales_funnel_clients.Funnel_ID = tsales_funnel.ID
  Left Join
  tfirmas_reg On tfirmas_reg.regcode = tsales_funnel_clients.Reg_nr Left Join
  n_products On tsales_funnel_mrecord.Product_type = n_products.Product_Code
  Left Join
  wp_users On tsales_funnel.Darijuma_vaditajs = wp_users.user_login ".$sqlselecteduser."
Order By
  Deadline";
从表单获取方法:

<?php
if(isset($_GET['selecteduser'])){
    $selecteduser = esc_sql($_GET['selecteduser']);
} else {
    $selecteduser = $_SESSION['selecteduser'];
}
if($selecteduser == 'all') {
    $sqlselecteduser = '';
} else {
    $sqlselecteduser = " Where tsales_funnel.Darijuma_vaditajs = $selecteduser ";
}

?>

将GET请求发送到此页面的表单:

<form action="" method="GET" id="selectdo">
<table border="1">
    <tr>
        <td>
            <label for="selector1">Darījuma vadītājs:</label>
        </td>
        <td>
            <select id="selector1" name="selecteduser">
            <option value="all">-ALL-</option>
            <?php 
                $sql = "SELECT display_name, user_login FROM wp_users";
                $results = $wpdb->get_results($sql);  // return an object, not ARRAY_N
            if ($results) {
                foreach ($results as $row) {
                    echo "<option value = '".$row->user_login."'>".$row->display_name."</option>"; 
            }}
                echo "</select></br>";                          
            ?>
        </td>
        <td><input type="submit" value="ok" /></td>
    </tr>
</table>
</form>

Darījuma vadītājs:
-全部-

使您的查询与此类似,这样您就可以轻松添加“WHERE”语句:

SELECT *
FROM my_table
WHERE 0 = 0
[IF CONDITION OPENED]
AND my_field = ...
[/IF CONDITION CLOSED]
这是一个示例,您必须将其修改为您选择的代码和语言。

我更喜欢这种方式

$sql = "Select
    tsales_funnel.ID As ID,
    wp_users.display_name As Darijuma_vaditajs,
    tcportal_starpnieks.Cp_Name As Starpnieks,
    tcportal_stucture.Cp_Name As OWCA,
    n_products.Product_Nos As Produkts,
    tsales_funnel_mrecord.Deadline As Deadline,
    tsales_funnel_clients.Reg_nr As Klienta_Regnr,
    tfirmas_reg.name_in_quotes As Klients,
    tsales_funnel_mrecord.ID As Prod_ID,
    tsales_funnel.Statuss As Statuss
From
    tsales_funnel Left Join
    tsales_funnel_mrecord On tsales_funnel_mrecord.Funnel_ID = tsales_funnel.ID
    Left Join
    tcportal_starpnieks On tcportal_starpnieks.Cp_code = tsales_funnel.Starpnieks
    Left Join
    tcportal_stucture On tcportal_stucture.Cp_code = tsales_funnel.OWCA Left Join
    tsales_funnel_clients On tsales_funnel_clients.Funnel_ID = tsales_funnel.ID
    Left Join
    tfirmas_reg On tfirmas_reg.regcode = tsales_funnel_clients.Reg_nr Left Join
    n_products On tsales_funnel_mrecord.Product_type = n_products.Product_Code
    Left Join
    wp_users On tsales_funnel.Darijuma_vaditajs = wp_users.user_login 
WHERE
    IF('".$selecteduser."' = 'all', 1=1, tsales_funnel.Darijuma_vaditajs = '".$selecteduser."')
Order By
    Deadline";

那么问题到底是什么呢?问题是,如果($selecteduser=='all'){$sqlselecteduser=''',那么它的所有功能都是有效的,否则{$sqlselecteduser=“Where tsales_漏斗.Darijuma_vaditajs=$selecteduser”;}不起作用您得到了什么错误?where子句中的未知列“admin”。可能需要以不同的方式放置“”?哇!!它起作用了!您能解释一下,if语句中1=1是什么意思吗?
where
中的
if
部分使其有条件。如果
$selecteduser
的值是
'all'
,则返回
>1=1
即对于每个记录始终
true
,否则仅对带有
tsales\u漏斗的记录返回true.Darijuma\u vaditajs=$selecteduser