我有以下查询,我试图只选择我有图片的行。
在表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>';
}
答案 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的输出应该说明脚本本身效率低下。相信我,当我说它可以通过一个查询完成。不要感到沮丧。你会搞清楚的。编程很难。