Opencart自定义mysql搜索表单

时间:2015-11-02 15:08:51

标签: php mysql forms opencart

我正在创建一个简单的自定义搜索表单。此表单搜索表'oc_product',其中我创建了一个新列'gcode'。我已在此列中为其中一个产品插入了样本数据。是否有必要在我创建的新tpl文件中创建一个新的db / mysql连接,就像'信息/联系'一样。我称之为'gcode / gcode'。 我尝试但无法从搜索中获得结果。它重定向到index.php。 我的代码是:

<form  method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"  id="searchform"> 
   <input  type="text" name="name"> 
   <input  type="submit" name="submit" value="Search"> 
</form>


if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
  $name=$_POST['name'];
  //connect  to the database
  $db=mysql_connect  ("localhost", "username_demo",  "pwddemo123") or die ('I cannot connect to the database  because: ' . mysql_error());
  //-select  the database to use
  $mydb=mysql_select_db("db_demo");
  //-query  the database table
  $sql="SELECT * FROM oc_product WHERE gcode LIKE '%" . $name .  "%'";
  //-run  the query against the mysql query function
  $result=mysql_query($sql);
  //-create  while loop and loop through result set
  while($row=mysql_fetch_array($result)){
          $gcode  =$row['gcode'];
  //-display the result of the array
  echo '<span>'."This product is genuine".$gcode.'</span>';

  }
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
  }

搜索列并从列中获取数据的任何示例。

2 个答案:

答案 0 :(得分:0)

不太明白你的问题。您想从一列中获取数据吗?也可以使用mysql_fetch_assoc代替mysql_fetch_array 并用$ _POST替换$ _GET 你的select语句也是错误的,所以这样做:

<?
$sql="SELECT * FROM oc_product WHERE gcode LIKE '%$name%'";
$result = mysql_query($sql);
$results = mysql_num_rows($result);
for($i=0; $i<$results; $i++)
{
$row = mysql_fetch_assoc($result);
$gcode = $row['gcode'];
// Here list it the way you want
echo $gcode.'<br>';
}
?>

答案 1 :(得分:0)

您需要创建模型,或者只是在搜索模型中添加此字段以供其搜索。我不确定这是否是您想要完成的任务,您也希望确保在获得SQL注入攻击之前清理请求并将其转义。