我有6下拉PHP。用户可以选择一个下拉菜单或全部下拉菜单,根据用户选择,我需要运行mysql查询。我的问题是,如果我使用AND,则用户必须从所有下拉菜单中选择一个选项。如果我使用OR,结果将非常非常奇怪。我需要一个用于组合值选择的解决方案,当我单击表以打开结果链接时,我需要一个解决方案。我现在有这个:

        <select name="categorie" class="form-control m-bot15">
        <option value= option 1> Option 1 </option>
        <option value= option 2> Option 2 </option>
    </select>

    <select name="employeename" class="form-control m-bot15">
        <option value= option 1> Option 1 </option>
        <option value= option 2> Option 2 </option>
    </select>

    etc....

    <?php
    if(isset($_GET['from'])){ $from = $_GET['from']; }
    if(isset($_GET['to'])){ $to = $_GET['to']; }
    $agenti = $_GET['agenti'];
    $task = $_GET['task'];
    $categorie = $_GET['categorie'];
    $clienti = $_GET['clienti'];
    $raw_results = mysql_query("SELECT distinct ch.employeename, ch.customername, ch.QuestionnaireName, ch.parentgroupname,
                                ch.groupname, vd.visitdate, vd.customerowner from chestionare ch
                                inner join visitdetails vd on vd.visitid =  ch.visitid
                                WHERE vd.visitdate >= '".$_GET['from']."' AND vd.visitdate <= '".$_GET['to']."' OR
                                 ch.employeename= '$agenti' OR ch.questionnairename= '$task' OR ch.parentgroupname= '$categorie' OR vd.customerowner= '$clienti'
                                    ")
                                or die(mysql_error());

    if(mysql_num_rows($raw_results) > 0){
        while($results = mysql_fetch_array($raw_results)){
    ?>

            <tr>
                <td><?php echo '<a href="g_angajat.php?name='.$agenti.'&from='.$from.'&to='.$to.'&clienti='.$clienti.'&task='.$task.'&categorie='.$categorie.'">' ?>    <?php echo $results['employeename']; ?></a></td>
                .... table for each dropdown
            </tr>


      <?php  } }?>


有人能帮我吗?谢谢

最佳答案

这样解决:

 $employeename= $_GET['employeename'];

 <select name="employeename">
 <option value="%">All Employees</option>
 <option value="John"John</option>
 </select>
 ...... x 6 times with different name for each select


现在在mysql中:

 SELECT distinct ch.employeename, ch.customername, ch.QuestionnaireName,   ch.parentgroupname,
 ch.groupname, vd.visitdate, vd.customerowner from chestionare ch
 inner join visitdetails vd on vd.visitid =  ch.visitid
  WHERE vd.visitdate >= '".$_GET['from']."' AND vd.visitdate <= '".$_GET['to']."' AND
  ch.employeename like '$employeename' AND ch.questionnairename like '$task' AND ch.parentgroupname like '$parentgroupname' AND vd.customerowner like '$customers'


结果:
如果您从雇员下拉菜单JOHN中选择,它将仅返回雇员JOHN的结果。如果从相同的下拉列表中选择“所有员工”,它将返回所有员工的结果。所有其他下拉菜单都使用相同的技术,并且结合使用时效果很好。

:)) 很简单。

关于php - 下拉菜单中的php和sql查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22845909/

10-11 12:43
查看更多