我正在尝试从数据库中获取数据并用html标记包装它。这是迄今为止的工作代码:
function homethumb(){ $this->count; $i = 0;
while($row = mysqli_fetch_object($this->result))
{
$this->count++; $i++;
if($i == 1){echo '<div class="gal1">';}
echo '<a href="portfolio.php?id=' . $row->id . '"> <div class="gal"><img src="img/' . $row->thumb2 . '.jpg"></div></a>';
if($i == 2){
echo '</div> <!-- gal1 -->';
$i=0;
}
}
}
在这里,我从数据库中获取所有内容(从投资组合中选择*),但在我的投资组合,网站,演示和图形;所以我想从上面的代码中只得到category =“web”的数据,所以我尝试了这个:
function homethumb(){ $this->count; $i = 0;
while($row = mysqli_fetch_object($this->result))
{
if($row->category = "web"){
$this->count++; $i++;
if($i == 1){echo '<div class="gal1">';}
echo '<a href="portfolio.php?id=' . $row->id . '"> <div class="gal"><img src="img/' . $row->thumb2 . '.jpg"></div></a>';
if($i == 2){
echo '</div> <!-- gal1 -->';
$i=0;
}
}
}
}
现在嵌套的if语句不会生成我需要的div,我怎样才能使这个工作
感谢您的帮助
答案 0 :(得分:2)
我根据您的问题无法看到您的SQL,但您可以修改SELECT查询以包含WHERE category="web"
这样,您只需选择需要的行,而不是遍历该表中的每个行。
此外,您的=
声明似乎正在使用作业==
而不是比较if
。
答案 1 :(得分:2)
您只需要==
代替=
吗?
if($row->category == "web"){
但最好将查询限制在数据库级别所需的结果,除非出于某种原因需要其他行。
答案 2 :(得分:1)
1)你错过了一个等号:
if($row->category = "web")
=&gt; if($row->category == "web")
或者更好
if($row->category === "web")
2)如果您只想获取具有特定category
字段的字段,则只需更改查询即可:
[rest of your query] WHERE category="web"
答案 3 :(得分:0)
好的,它应该是这样的,假设字段按如下方式排序
ID,类别,网站,thumb2,演示,图形
function homethumb(){ $this->count; $i = 0;
while($row = mysqli_fetch_object($this->result))
{
if($row[1] == "web"){
$this->count++; $i++;
if($i == 1){echo '<div class="gal1">';}
echo '<a href="portfolio.php?id=' . $row[0] . '"> <div class="gal"><img src="img/' . $row[3] . '.jpg"></div></a>';
if($i == 2){
echo '</div> <!-- gal1 -->';
$i=0;
}
}
}
}
并且不需要嵌套if,你可以在一行中使用它,如下所示:
if($row[1] = "web")
{
echo '<div class="gal1">';
echo '<a href="portfolio.php?id=' . $row[0] . '"> <div class="gal"><img src="img/' . $row[3] . '.jpg"></div></a>';
echo '</div> <!-- gal1 -->';
}
答案 4 :(得分:0)
1)将您的查询更改为包含WHERE category =“web”子句
2)当你需要一个相等运算符(==)
时,你的if子句(=)中有一个赋值运算符