Php 如何显示连接到数据库的表单搜索结果?

Php 如何显示连接到数据库的表单搜索结果?,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我将向您展示的代码不起作用。没有显示IF条件的结果。但对于其他人来说,他们是。当我单独使用echo调用$service_id时,它会给出我搜索的id,但在WHERE close:service_id=“$service_id”中使用时,不会显示任何内容 <form method="GET" name="pesquisa" id="inserrifo" action="/services.php"> <input class="procurasalgo" id='pesq

我将向您展示的代码不起作用。没有显示IF条件的结果。但对于其他人来说,他们是。当我单独使用echo调用$service_id时,它会给出我搜索的id,但在WHERE close:service_id=“$service_id”中使用时,不会显示任何内容

<form method="GET" name="pesquisa" id="inserrifo" action="/services.php">
    <input class="procurasalgo" id='pesqSign' name="keyword" value="<?php echo $keyword;?>" placeholder="Inserir palavra"/><label for="pesqSign" id="pesqSigne"><img class="lupapesquisa" src="/img/search-26.png" /></label>
    <select name="services">
        <option disabled selected value=''>Serviços</option>
        <?php
            $res = $DAL->mysqlQuery("SELECT * FROM services");
            while($row = mysql_fetch_assoc($res)){
                echo "<option value='".$row['serv_id']."'>".$row['serv_name']."</option>";
            }
        ?>
    </select>
    <select name='distritos'>
        <option disabled selected value=''>Portugal</option>
        <?php
            $res = $DAL->mysqlQuery("SELECT * FROM distritos");
            while($row = mysql_fetch_assoc($res)){
                echo "<option value='".$row['d_id']."'>".$row['d_nome']."</option>";
            }
        ?>
    </select>
    <button>Procurar</button>
</form>

葡萄牙
检察官
“placeholder=“Inserir palavra”/> 塞维索斯 mysqlQuery(“从服务中选择*); while($row=mysql\u fetch\u assoc($res)){ 回显“$row['serv_name']”; } ?> 葡萄牙 mysqlQuery(“从发行版中选择*); while($row=mysql\u fetch\u assoc($res)){ 回显“$行['d_nome'”; } ?> 检察官


行检查三个字段之间是否存在任何字段。换句话说,当$service\u id或$district\u id或$keywords不为空时,此逻辑检查将为TRUE。
假设用户只为“关键字”输入值,在这个页面中,您将只得到$keywords和$service\u id的值,而$district\u id将为空

因为其中一个(这里$keywords)不是空的,所以IF语句将返回true,程序控制将在其中移动

但是,在您正在使用的SQL查询和条件中,需要service_id和distrito_id列中的有效值或非空值。由于其中一个列可能仍然为空,因此此查询将不会产生任何结果

要调试这种情况,请仅从下拉列表中选择一个值,然后使用echo语句在IF块中打印查询。

我从朋友那里得到了帮助:)

public函数returnSelectService($nomeSelect、$idSelect、$nomeCampo、$stringSQL、$selected=null)
{       
$list=“”;
$list.=“服务”;
$res=$this->mysqlQuery($stringSQL);
$select=“”;
while($linha=mysql\u fetch\u object($res))
{
如果($selected!=null&&$selected==$linha->serv\u id)
$select='selected=“selected”';
$list.=''.$linha->$nomeCampo.'';
$select=“”;
}
$list.=“”;
返回$list;
}
公共函数returnSelectDistrict($nomeSelect、$idSelect、$nomeCampo、$stringSQL、$selected=null)
{       
$list=“”;
$list.=“葡萄牙”;
$res=$this->mysqlQuery($stringSQL);
$select=“”;
while($linha=mysql\u fetch\u object($res))
{
如果($selected!=null&&$selected==$linha->d_id)
$select='selected=“selected”';
$list.=''.$linha->$nomeCampo.'';
$select=“”;
}
$list.=“”;
返回$list;
}

检察官
你查询的where条件不起作用。我说的对吗?@Domingos PereiraYou是对的。IF中的where条件不起作用。但ELSE中的where条件是。嗨。我明白你的意思,但在这种情况下,当搜索表单中所有3个值都被选中时,代码应该起作用。但在se中它仍然给我0个输入arch display:/代码中的另一个缺陷是IF块中的表没有正确连接。您是否尝试“回显”SQL&直接在MySql中运行?
<?php   

    $service_id = $_GET['services'];
    $district_id = $_GET['distritos'];
    $keywords = $_GET['keyword'];


    if ($service_id != '' || $district_id != '' || $keywords != '') {

    $result = $DAL->mysqlQuery("SELECT * FROM users, services, distritos, users_services WHERE u_id = user_id && service_id = '$service_id' && distrito_id = '$district_id' ");

    $row = mysql_fetch_assoc($result);

    while($row = mysql_fetch_assoc($result)) {

    $img_user = $row['u_foto'];


        echo "<div class='Services'><img src='http://mufip.pt/images/userimages/avatars/".$img_user."' /><br /><h5>".$row['u_name']."<h5><h6>".substr($row['u_descricao'],0, 140)."</h6></div>";

        } //while

    } //if

    else {

    $result = $DAL->mysqlQuery("SELECT * FROM users, services, distritos, users_services WHERE u_id = user_id && service_id = serv_id && distrito_id = d_id ORDER BY RAND()");

    $num = mysql_numrows($result);
    echo $num." resultados<br />";

    while($row = mysql_fetch_assoc($result)) {

    $img_user = $row['u_foto'];

    echo "<div class='Services'><img src='http://mufip.pt/images/userimages/avatars/".$img_user."' /><br /><h5>".$row['u_name']."<h5><h6>".substr($row['u_descricao'],0, 140)."</h6></div>";

        } //while

    } //else

    ?>
if ($service_id != '' || $district_id != '' || $keywords != '') {
public function returnSelectService($nomeSelect,$idSelect,$nomeCampo,$stringSQL,$selected = null)
{       
    $list = "<select class=\"selectServicesList\" id=\"$idSelect\" name=\"$nomeSelect\">";
    $list .="<option value=\"\">Serviços</option>";
    $res = $this->mysqlQuery($stringSQL);
    $select = "";


    while ($linha = mysql_fetch_object($res)) 
    {
        if($selected != null && $selected == $linha->serv_id)
            $select = 'selected="selected"';            
        $list .="<option $select  value=\"$linha->serv_id\">".$linha->$nomeCampo."</option>";
        $select = "";
    }
    $list .= "</select>";
    return  $list;
}



public function returnSelectDistrict($nomeSelect,$idSelect,$nomeCampo,$stringSQL,$selected = null)
{       
    $list = "<select class=\"selectServicesList\" id=\"$idSelect\" name=\"$nomeSelect\">";
    $list .="<option value=\"\">Portugal</option>";
    $res = $this->mysqlQuery($stringSQL);
    $select = "";


    while ($linha = mysql_fetch_object($res)) 
    {
        if($selected != null && $selected == $linha->d_id)
            $select = 'selected="selected"';            
        $list .="<option $select  value=\"$linha->d_nome\">".$linha->$nomeCampo."</option>";
        $select = "";
    }
    $list .= "</select>";
    return  $list;
}




    <form method="GET" name="pesquisa" id="inserrifo" action="/services.php">
            <br />
            <?php
            echo $DAL->returnSelectService('services','services','serv_name',"SELECT * FROM services ",$service_id);
            ?>          
            <?php
            echo $DAL->returnSelectDistrict('distritos','distritos','d_nome',"SELECT * FROM distritos ",$d_id); 
            ?>  
            <button class="btn btn-default">Procurar</button>
        </form>



    <?php   


$stringSQL ="SELECT * FROM users, services, distritos, users_services WHERE u_id = user_id AND service_id = serv_id AND distrito_id = d_id ";
if($service_id != "")
    $stringSQL .=" AND serv_id = '{$service_id}'  ";
if($district_id != "")
    $stringSQL .="AND d_id = '{$district_id}' ";
$stringSQL .="ORDER BY RAND()";


        $result = $DAL->mysqlQuery($stringSQL);

        $num = mysql_numrows($result);

            echo $num." resultados<br />";      

            while($row = mysql_fetch_assoc($result)) {

            $img_user = $row['u_foto'];

            echo "<div class='services'>
            <div class='servicesBox'>
            <img src='http://mufip.pt/images/userimages/avatars/".$img_user."' />
            <h4>".$row['u_name']."</h4><br />
            <h5>".$row['serv_name'].", ".$row['d_nome']."</h5><br />
            <p>".substr($row['u_descricao'],0, 200)." ...</p>
            </div>
            </div>
            <div style='clear: both; background-color: white; height: 15px'>
            </div>";

                }

            ?>