我想从mysql

时间:2015-10-26 12:20:32

标签: php html mysql

首先,我想告诉你我正在使用blob。所以,我上传了一些图片,我想创建一个搜索栏,以便我可以通过tag从我的数据库中调用它。我现在的情况如下:

我无法搜索2个字或更多字。

我的数据库中有一个名为tagkategori的字段。

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个字或更多字来表达?

我听说过爆炸,但我不明白如何使用它。

this is my database, which use tag to find my image

4 个答案:

答案 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";
        }

这是您的代码修改