2013-03-31 128 views
0

我需要根據表單提交值來獲取行。根據表單提交值獲取Mysql表格行數據

這裏是我的形式

<form name="choose" method "post" t" action="search.php"> 
    <table> 
    <tr> 
     <tr> 
      <td height="3"> 
      </td> 
     </tr> 
     <td width="60"> 
      <font1>Prof</font1> 
     </td> 
     <td> 
      <select name proffession on> 
       <option value=""></option> 
       <option value="doctor"><font4>Doctor</font></option> 
       <option value="designer">Designer</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <tr> 
      <td height="3"> 
      </td> 
     </tr> 
     <td width="60"> 
      <font1>Source</font1> 
     </td> 
     <td> 
      <select name source> 
       <option value=""></option> 
       <option value="x"><font4>X</font></option> 
       <option value="y">Y</option> 
       <option value="z">Z</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <tr> 
      <td height="3"> 
      </td> 
     </tr> 
     <td width="60"> 
      <font1>Location</font1> 
     </td> 
     <td> 
      <select name location on> 
       <option value=""></option> 
       <option value="bangalore">Bangalore</option> 
       <option value="delhi">Delhi</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input name=look type=submit value=submit> 
     </td> 
    </tr> 
</form> 

如果有任何的空場提交我需要獲取排除該列的行。 這裏是我的search.php

<?php 
mysql_connect("localhost","root","");//database connection 
mysql_select_db("alldata"); 
$qry = "SELECT * FROM data WHERE location LIKE '" . mysql_escape_string($_POST['location']) . "' And proffession LIKE '" . mysql_escape_string($_POST['proffession']) . "' And source LIKE '" . mysql_escape_string($_POST['source']) . "'"; 

$res = mysql_query($qry); 
function mysql_fetch_all($res) { 
    while($row=mysql_fetch_array($res)) { 
     $return[] = $row; 
    } 
    return $return; 
} 
function create_table($dataArr) { 
    echo "<tr> 
"; for($j = 0; $j < count($dataarr); $j++) { echo "<td>".$dataArr[$j]." 
</td> 
"; } echo " 
</tr> 
"; } $all = mysql_fetch_all($res); echo " 
<table class='data_table'> 
"; for($i = 0; $i < count($all); $i++) { create_table($all[$i]); } echo "</table>"; 
?> 

但是這個劇本是不是能夠給我一個解決方案。 請幫助

+0

'<形式名稱= 「選擇」 方法 「後」 t」的行動= 「的search.php」>'是一個錯字 – didierc

+0

'<選擇名稱源>'相同爲所有的選擇下拉框,這是不正確的HTML。 – didierc

回答

1
1.Correct your function mysql_fetch_all($res). There is no query 
      inside the function. 

2. Deprecated: mysql_escape_string(): This 
      function is deprecated; use mysql_real_escape_string() 

3. Correct: <select name source> to: <select name="source"> and <select name location on> to <select name="location"> and <input name=look type=submit value=submit> to <input name="look" type="submit" value="submit"> and delete t" from choose form AND <form name="choose" method="post" action="search.php"> 
0

首先,你不應該使用mysql_*功能,看到紅色的大盒子here。考慮使用PDOMySQLi代替。

其次,你似乎缺少一些=method="post"這樣你可能要檢查你實際上正確地var_dump($_POST)

收到您的POST值再次排除非提交的值,你可以建立查詢字串基於這些。類似:?

$qry = "SELECT * FROM data WHERE "; 
if($_POST['location']) { 
    $qry .= 'LIKE "%'. mysql_real_escape_string($_POST['location']) .'%"'; 
} 
// etc... 
0
$qry = "SELECT * FROM data WHERE location LIKE '%" . mysql_escape_string($_POST['location']) . "%' And proffession LIKE '%" . mysql_escape_string($_POST['proffession']) . "%' And source LIKE '%" . mysql_escape_string($_POST['source']) . "%'";