2012-10-09 103 views
0

我創建一個包裝肉搜索表單,用戶可以搜索使用多種形式和下拉框不同的包。我有一個有很多的問題,但大多數的現在進行排序,我只需要創建一個「任意」搜索下拉框,並顯示所有結果空文本框的問題。如何停止顯示所有結果的空SQL查詢?

目前當用戶發送的搜索,他們可能已經在一些其他的文本框中輸入的,但是當的形式之一爲空,可以自動顯示所有的結果。我想要它,所以當發送一個搜索和一個盒子是空的時候,代碼會忽略那個表單,只是檢查那些有信息的表單。

這裏是我的測試代碼(不是我目前的最終形式的代碼):

<body> 
<?php 
$con = mysql_connect("localhost", "root", ""); 
mysql_select_db("delyn_db", $con); 

if (!$con) 
{ 
    die("Could not connect: " . mysql_error()); 
} 

$descrip = mysql_real_escape_string($_POST['descrip']); 

$sql = "SELECT * FROM delyn WHERE description LIKE '%" . $descrip . "%'"; 

$r_query = mysql_query($sql); 

if ($descrip === "") 
{ 
    echo 'Null value'; 
} 

while ($row = mysql_fetch_array($r_query)) 
{ 
    echo '<br /> Description: ' . $row['description']; 
} 

?> 
</body> 

人對如何制止這種任何想法?

編輯:對不起,這裏是我的HTML與搜索框。上面的php就是發送值的地方。

<body> 
    <form action="form5null.php" method="post"> 
     <label for="description">Description:</label> <input type="text" name="descrip"> 
     <br> 
     <label for="trayheight">Trayheight:</label> <input type="text" name="height"> 
     <br> 
     <label for="traywidth">Traywidth:</label> <input type="text" name="width"> 
     <br> 
     <label for="traydepth">Traydepth:</label> <input type="text" name="depth"> 
     <br> 
     <label for="trayrange">Trayrange:</label> <select name="trayrange"> 
      <option value="BBQ"> 
       BBQ 
      </option> 

      <option value="Dessert"> 
       Dessert 
      </option> 

      <option value="Display"> 
       Display 
      </option> 

      <option value="Meat"> 
       Meat 
      </option> 

      <option value="Microwave"> 
       Microwave 
      </option> 

      <option value="Party"> 
       Party 
      </option> 

      <option value="Salad/Wet Pasta"> 
       Salad/Wet Pasta 
      </option> 

      <option value="Snacks"> 
       Snacks 
      </option> 

      <option value="Standard"> 
       Standard 
      </option> 
     </select> <label for="traytype">Traytype:</label> <select name="traytype"> 
      <option value="Open"> 
       Open 
      </option> 

      <option value="Cavitised"> 
       Cavitised 
      </option> 

      <option value="Lid"> 
       Lid 
      </option> 

      <option value="Tray"> 
       Tray 
      </option> 

      <option value="Coallition"> 
       Coallition 
      </option> 

      <option value="Bowl"> 
       Bowl 
      </option> 

      <option value="Hinge pack"> 
       Open 
      </option> 

      <option value="Pot"> 
       Pot 
      </option> 

      <option value="Base &amp; Lid"> 
       Base and Lid 
      </option> 

      <option value="Rectangular"> 
       Rectangular 
      </option> 

      <option value="Specalist"> 
       Specialist 
      </option> 
     </select> 
     <br> 
     <label for="trayshape">Trayshape:</label> <select name="trayshape"> 
      <option value="Rectangular"> 
       Rectangular 
      </option> 

      <option value="Oval"> 
       Oval 
      </option> 

      <option value="Square"> 
       Square 
      </option> 

      <option value="Insert"> 
       Insert 
      </option> 

      <option value="Round"> 
       Round 
      </option> 

      <option value="Open"> 
       Open 
      </option> 
     </select> 
     <br /> 
     <input type="submit" value="Submit"> 
    </form> 
</body> 
+0

你是什麼意思其他文本框?你沒有一個單一的搜索輸入? –

+2

如果$記述===「」在客戶端上運行查詢 – cleanunicorn

+1

驗證之前......沒有搜索可能的,如果盒子是空的你應該做的檢查。 –

回答

0

您是否嘗試過通過如果值是空/空(視用戶使用PHP),如果沒有填充只是不運行查詢只檢查限制您的SQL查詢?

例如(僞)

if(box1.HasText || box2.HasText || box3.HasText) 
{ 
    RunTheSqlForForm1(); 
}