首先,我想告诉你我正在使用blob。所以,我上传了一些图片,我想创建一个搜索栏,以便我可以通过tag
从我的数据库中调用它。我现在的情况如下:
我无法搜索2个字或更多字。
我的数据库中有一个名为tag
和kategori
的字段。
在tag
中我添加了zat ; proses ; obat ;
它由;
(分号)分隔。
所以,这是我的一个搜索代码:
<html>
<body>
<?php
$conn = mysql_connect("localhost", "denis", "denis");
mysql_select_db("company");
echo($_POST["tag"]);
?>
<form method="POST" >
<font color='black'>Cari gambar:</font>
<input type="text" name="tag" value=" ">
<input type="submit" name="search" value="Cari"/>
</form>
<?php
if(isset ($_POST["tag"]))
{
$sql2="select imageId from output_images where bukuId=". $_GET["id"]." and tag like '%".$_POST["tag"]."%' Order by imageId asc";
}
else
{
$sql2="select imageId from output_images where bukuId=". $_GET["id"]." Order by imageId asc limit 1";
}`enter code here`
$res2=mysql_query($sql2,$conn);
while($row2=mysql_fetch_array($res2))
{
echo("<img src='http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/profile.php?image_id=". $row2["imageId"]. "' width='15%' height='30%'/>");
}
mysql_close();
//echo("ada");
mysql_close($conn);
?>
</body>
</html>
我怎么能用2个字或更多字来表达?
我听说过爆炸,但我不明白如何使用它。
答案 0 :(得分:1)
在mysql查询中使用它:
WHERE interests REGEXP 'tag1|tag2|tag3'
答案 1 :(得分:0)
这是我的代码,我正在拆分标签并为MySQL查询生成like子句:
[self.tableView deselectRowAtIndexPath:indexPath animated:NO];
return;
答案 2 :(得分:0)
好的,我的理解是。您需要一个搜索栏,您可以在其中输入图像标签。输出/ $ _ POST ['tag']将类似于tag1; tag2
您可以使用爆炸并预告每个标签。
$data = explode(';', $_POST['tag']);
$i = 0;
foreach($data as $tags){
$i++;
if($i == 1){
$query .= 'AND tag like %'.$tags.'%';
}else{
$query .= 'OR tag like %'.$tags.'%';
}
}
$sql2="select imageId from output_images where bukuId=". $_GET["id"]." ".$query." Order by imageId asc";
这会给你一个像这样的SQL查询
SELECT imageId from output_images where bukuId= '5' AND tag='tag1' OR tag='tag2' Order by imageId asc
修改强>
<html>
<body>
<?php
$conn = mysql_connect("localhost", "denis", "denis");
mysql_select_db("company");
echo($_POST["tag"]);
?>
<form method="POST" >
<font color='black'>Cari gambar:</font>
<input type="text" name="tag" value=" ">
<input type="submit" name="search" value="Cari"/>
</form>
<?php
if(isset ($_POST["tag"]))
{
$data = explode(';', $_POST['tag']);
$i = 0;
foreach($data as $tags){
$i++;
if($i == 1){
$query .= 'AND tag like %'.$tags.'%';
}else{
$query .= 'OR tag like %'.$tags.'%';
}
}
$sql2="select imageId from output_images where bukuId=". $_GET["id"]." ".$query." Order by imageId asc";
}
else
{
$sql2="select imageId from output_images where bukuId=". $_GET["id"]." Order by imageId asc limit 1";
}
$res2=mysql_query($sql2,$conn);
while($row2=mysql_fetch_array($res2))
{
echo("<img src='http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/profile.php?image_id=". $row2["imageId"]. "' width='15%' height='30%'/>");
}
mysql_close();
//echo("ada");
mysql_close($conn);
?>
</body>
</html>
这是你的代码。你会看到我所做的改变。
答案 3 :(得分:0)
if(isset ($_POST["tag"]))
{
$tags = $_POST["tag"];
$Id = $_GET["id"];
$atags = explode(" ",$tags);
$mytags = "";
foreach($atags as $tag)
{
$mytags .= " tag like '%". $tag . "%' or";
}
$sql2="select imageId from output_images where bukuId=". $Id." and tag like '%".$tags."%' Order by imageId asc";
}
这是您的代码修改