php
  • select
  • 2016-02-12 147 views -1 likes 
    -1

    我有一個查詢,從'用戶'表中選擇並過濾'vehicle_make'和'dealer_group'表。 dealer_group的值是'北','東','南'和'西'。如果登錄用戶的值爲'東',他們只會看到具有相同'vehicle_make'和'dealer_group'的用戶。選擇查詢php

    $query = "SELECT * FROM users 
          WHERE vehicle_make = '".$_SESSION['vehicle_make']."' 
          AND dealer_group = '".$_SESSION['dealer_group']."' 
          ORDER BY ".$order_by." LIMIT ".$start.", ".$display; 
    

    我所試圖做的是拿出一個查詢的人誰可以看到所有的用戶提供的北,東,西,南值,但仍然篩選出誰擁有單一值的其他用戶。我寧願不把所有這些值都放在數據庫的表格中(即「北,西,南,東」的值),但是有沒有一種快速簡單的方法呢?

    +0

    從我收集的內容中,只有2個解決方案。首先,選擇所有用戶並在前端進行篩選。其次,基於前端過濾器應用SQL語句過濾並返回結果。有沒有一個你想要複製的這種功能的實例? – dchayka

    +0

    請在此處添加樣本表數據以及要實現的結果數據。 –

    +0

    你必須要更具體一些,否則我們不能做任何事情,除了猜測 – RiggsFolly

    回答

    3

    對於可以查看所有經銷商組的用戶,請將會話變量留空。然後做:

    $dealer_group = empty($_SESSION['dealer_group']) ? " " : "AND dealer_group = '{$_SESSION['dealer_group']}'"; 
    $query = "SELECT * FROM users 
          WHERE vehicle_make = '{$_SESSION['vehicle_make']}' 
          $dealer_group 
          ORDER BY $order_by LIMIT $start, $display"; 
    

    這樣,如果他們不侷限於特定的經銷商集團,它只是省去了WHERE條款的一部分。

    +0

    你是一個拯救生命的人!謝謝,這個作品完美! – AdamMc

    相關問題