php - MySQL 选择列 LIKE 且不为空的位置

标签 php mysql

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

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

一切正常,但我打印了第三类的名称,但我没有图片。

我试过 WHERE link LIKE '%$first_var%'AND NOT (link <=> NULL) ....IS NOT 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>';
    }

最佳答案

问题是我无法确定您的 Tab_Pic_Pic 表中是否有外键。但是,您可以加入“赞”。

试试这个:

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 的输出包装在像这样的简单条件中应该说明脚本本身效率低下。相信我,这一切都可以通过一个查询来完成。不要沮丧。你会想出来的。编程很难。

关于php - MySQL 选择列 LIKE 且不为空的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149123/

相关文章:

javascript - mysqli_query 在函数内部自动激活?

php - 在 Localhost 上使用 XAMPP 重置 MySQL 根密码

通过 SSL 的 php SOAP 调用 - 如何在请求中同时插入证书、 key 和 CA 证书?

php - 如何在mysql的WHERE子句中使用OR & AND

php - WKPDF系统错误?

php - 如何比较同一数据库中两个表中的值

mysql 依赖非空列

PHP/MySQL 致命内存分配错误

java - 运行复杂查询

php while循环不会增加数据库列