MySQL选择LIKE列并且不为空

时间:2016-12-14 17:58:00

标签: php mysql

我有以下查询,我试图只选择我有图片的行。

在表kat_gl_picture中我有3个类别,但我还没有所有3个类别的图片!

所有工作都很好,但是我打印了第三类的名字,我没有照片。

我尝试了WHERE链接LIKE'%$ first_var%'AND NOT(link< => NULL) ....不是空 - 但没有任何效果。 Tabele1 and 2 and web problem solved

 <?
    include("connection.php");
    $kategorije = mysql_query("SELECT * FROM kat_gl_picture ORDER BY rbr");
        while ($red=mysql_fetch_array($kategorije))                 
        {
        $first_var = $red['kat'];                   
        $result = mysql_query("SELECT id, naziv, ime, tekst, username, link, file_name, datum FROM Tab_Pic_Pic
    WHERE link LIKE  '%$first_var%'
                   ORDER BY id");
        echo '<table>';
    echo '<tbody>';
        echo $first_var;    
        echo '<tr>';
                   echo '<TD valign="top">';
        while ($row=mysql_fetch_array($result))
        {
        list($x, $y) = getimagesize("admin /upload/".$row['file_name']);
        if ($x>$y)  {
    $y=($y/$x)*150;
    $x=150;
    }
    else
    {
    $x=($x/$y)*115;
    $y=115;
    }
    $ID_broj = $row["id"];
        $tekst_broj = $row["tekst"];
    ?>
    <?     echo '<img src="admin /upload/'.$row['file_name'].'" height="'.$y.'" width="'.$x.'"/>';?>            
    <? 
    }
    echo '</td>';
    echo '</tr>';
    echo '</tbody>';
    echo '</table>';
    }

1 个答案:

答案 0 :(得分:0)

问题是我无法确定Tab_Pic_Pic表中是否有外键。但是你可以加入LIKE。

试试这个:

SELECT * FROM Tab_Pic_Pic JOIN kat_gl_picture ON Tab_Pic_Pic.link LIKE CONCAT('%', kat_gl_picture.kat, '%') ORDER BY kat_gl_picture.kat, Tab_Pic_Pic, rbr

它应该为您提供所有图片的列表,包括kat_gl_picture.kat字段,您可以使用本地变量来检测更改。

如果我有完整的表信息,会更容易提供更准确的示例。标准方法是在Tab_Pic_Pic中有一个外键,它引用kat_gl_picture表中相应的主键。

或者,如果您只想省略空白类别,可以在PHP代码中完成,如下所示:

if(mysqli_num_rows($result)>0){
    echo '<table>';
    echo '<tbody>';
    echo $first_var;    
    echo '<tr>';
               echo '<TD valign="top">';
    while ($row=mysql_fetch_array($result))
    {
    list($x, $y) = getimagesize("admin /upload/".$row['file_name']);
    if ($x>$y)  {
    $y=($y/$x)*150;
    $x=150;
    }
    else
    {
    $x=($x/$y)*115;
    $y=115;
    }
    $ID_broj = $row["id"];
    $tekst_broj = $row["tekst"];
    ?>
    <?     echo '<img src="admin /upload/'.$row['file_name'].'" height="'.$y.'" width="'.$x.'"/>';?>            
    <? 
    }
    echo '</td>';
    echo '</tr>';
    echo '</tbody>';
    echo '</table>';
}

在这样的简单条件下包装HTML的输出应该说明脚本本身效率低下。相信我,当我说它可以通过一个查询完成。不要感到沮丧。你会搞清楚的。编程很难。