我正在创建一个简单的自定义搜索表单。此表单搜索表'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>";
}
}
}
搜索列并从列中获取数据的任何示例。
答案 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注入攻击之前清理请求并将其转义。