难以创建mysql搜索查询并显示结果

时间:2013-10-10 23:44:57

标签: php mysql search superglobals

好的 - 我现在已经和这个问题搏斗了好几天了。我搜索了谷歌和stackoverflow等地方,我尝试了很多东西试图让这项工作,但到目前为止没有运气。我将这归因于我对php和mysql的忠诚,因为我可能在代码中错误地放置了}或者做了一些乱序。

场景:我正在尝试使用表单生成搜索查询并显示结果。这是在尝试搜索我的单表数据库。此外,这一切都在一个封闭的网络上,所以我现在不担心注入/安全漏洞。

当我尝试编写搜索功能时,问题就出现了,并且了解了如何不再使用$ _POST,因为它是一个超全局。

现在,当我尝试使用搜索表单时,它没有产生任何错误,所以我真的很难过如何让它工作。

编辑:我从我用来创建记录的表单中回收了很多代码。希望这不是一个错误。

以下是代码:

    <?php
if(isset($_POST['search']))
{
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

if(! get_magic_quotes_gpc() )
{
   $Client = addslashes ($_POST['Client']);
   $Product = addslashes ($_POST['Product']);
   $Type = addslashes ($_POST['Type']);
   $Date = addslashes ($_POST['Date']);
   $Category = addslashes ($_POST['Category']);
   $Disc = addslashes ($_POST['Disc']);
}
else
{
   $Client =  ($_POST['Client']);
   $Product =  ($_POST['Product']);
   $Type =  ($_POST['Type']);
   $Date =  ($_POST['Date']);
   $Category =  ($_POST['Category']);
   $Disc =  ($_POST['Disc']);
}
//search function!
function search_designarchive($_post) {
    $Client = $_post['Client'];
    $Product = $_post['Product'];
    $Type = $_post['Type'];
    $Date = $_post['Date'];
$Category = $_post['Category'];
$Disc = $_upost['Disc'];

    //is this where 'real escaping' should be?
    mysql_select_db('desarch');
$query = "SELECT * FROM designarchive";
$conditions = array();

if($Client !="") {
  $conditions[] = "Client='$Client'";
}
if($Product !="") {
  $conditions[] = "Product='$Product'";
}
if($Type !="") {
  $conditions[] = "Type='$Type'";
}
if($Date !="") {
  $conditions[] = "Date='$Date'";
}
if($Category !="") {
  $conditions[] = "Category='$Category'";
}
if($Disc !="") {
  $conditions[] = "Disc='$Disc'";
}

$sql = $query;
if (count($conditions) > 0) {
  $sql .= " WHERE " . implode(' AND ', $conditions);
}

$result = mysql_query($sql, $conn) or die(mysql_error());

return $result;
if(! $result )
{
  die('Result query did not work: ' . mysql_error());
}
    }

mysql_close($conn);
}

else
{
?>

以下是表格:

<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Client</td>
<td><input name="Client" type="text" id="Client" size="40"></td>
</tr>
<tr>
<td width="100">Product</td>
<td><input name="Product" type="text" id="Product" size="40"></td>
</tr>
<tr>
<td width="10">Type</td>
<td><input type="radio" name="Type" value="Sold" id="Type"> Sold<br>
<input type="radio" name="Type" value="Spec" id="Type"> Spec<br>
<input type="radio" name="Type" value="Marketing" id="Type"> Marketing<br></td>
</tr>
<tr>
<td width="6">Date</td>
<td><input name="Date" type="text" id="Date" size="6" maxlength="6"> <i>ex. Oct-13</i>
</td>
</tr>
<tr>
<td width="100">Category</td>
<td><input name="Category" type="text" id="Category"></td>
</tr>
<tr>
<td width="3">Disc #</td>
<td><input name="Disc" type="text" id="Disc" size="4" maxlength="3"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="search" type="submit" id="search" value="Search">
</td>
</tr>
</table>
</form>
<?php
}
?>

提前感谢您的帮助。这个社区是一个很好的资源。这实际上是我第一次问一个问题:)

0 个答案:

没有答案