我似乎无法获得我正在寻找的 IF 条件

I can't seem to get the IF condition I'm looking for

我的功能正常工作,我似乎无法获得正确的 IF 条件来将其全部包装起来。我想要实现的只是创建 link 列表,如果 WHILE 有任何内容显示。

所以如果我在线程 ID 3 上并且它有 2 个插件线程 ID 4,5 它将创建:

<ul>
  <li><a href="showthread.php?t=4">Link 4</a></li>
  <li><a href="showthread.php?t=5">Link 5</a></li>
</ul>

如果我在线程 2 上并且它没有插件线程 ID,它应该 return 没有。

这是我目前没有条件的。

$addonid = $db->query_read ("
  SELECT drc.threadid AS threadid
  FROM `" . TABLE_PREFIX . "modsys_settings` AS drc
  LEFT JOIN `" . TABLE_PREFIX . "thread` AS thread
  ON(drc.mod_addons=" . $threadinfo['threadid'] . ")
  WHERE thread.threadid IN (" . $threadinfo['threadid'] . ")
");
  $post['addons'] = '<ul>';

  while ($addons = $db->fetch_array ($addonid)) {    
    $ci_counter = $db->query_read ("
      SELECT drc.mod_addons AS addon, drc.threadid, thread.threadid AS threadid, thread.title AS threadtitle
      FROM `" . TABLE_PREFIX . "modsys_settings` AS drc 
      LEFT JOIN `" . TABLE_PREFIX . "thread` AS thread ON(drc.mod_addons=" . $threadinfo['threadid'] . ") 
      WHERE thread.threadid IN (" . $addons['threadid'] . ")
    ");

    $counter = $db->fetch_array ($ci_counter);
    $post['addons'] .= '<li><a href="showthread.php?t=' .   $addons['threadid'] . '">'. $counter['threadtitle'] .'</a></li>';
  }

  $post['addons'] .= '</ul>';

我玩的不多php,所以我会给你一般的指导。

只需使用一个布尔变量来控制何时创建 init 标签并关闭它。

 @i_create_a_tag = false;

 while ( something ) {
     -- open the tag only once
     if (!@i_create_a_tag) {
         $post['addons'] = '<ul>';
         @i_create_a_tag = true;
     }

     ....          
 }

 -- close the tag if was open
 if (@i_create_a_tag) {
    $post['addons'] = '</ul>';
 }

你能做类似 $addonid->num_rows 的事情吗?

$show_list = $addonid->num_rows;
if($show_list)
     $post['addons'] = '<ul>';

然后过了一会儿

if($show_list)
    $post['addons'] = '</ul>';