【问题标题】:Getting the right 'topic' per record为每条记录获取正确的“主题”
【发布时间】:2018-04-03 11:35:31
【问题描述】:

我的问题是我不会得到正确的记录。如您所见,每个主题都有一个board_id,它需要显示正确的板,但现在它只显示stel jezelf voor,最后一条记录需要是nieuws & events

Klanten 数据库

带有板的数据库

包含主题的数据库

显示记录的代码:

<?php
   $toppic = $app->get_topics();
   foreach($toppic as $topic){
    echo '<div id="topic">';
    echo '<div id="topicimg">';
      if(file_exists('assets/images/profielfotos/'.$topic['klant_id'])) { 
   echo '<img class="img-circle" src="/assets/images/profielfotos/'.$topic['klant_id'].'/'.$topic['foto'].'" />';
      } else {
         echo '<i class="fa fa-fw fa-user img-circle"></i>';
      }
      echo '</div><div id="topictekst">';
      echo '<b><a href="https://tom.lbmedia.nl/reactie"> '.$topic['topicnaam'].'</b></a>'; 
      echo '<a> - ' . $topic['voornaam'] . " " . $topic['achternaam'] . '</a>' ;
      echo '<a style="float:right; margin-top:15px;"> reacties</a> <span style="float:right; color:grey; margin-top:15px"class="fa fa-comment"></span>';
      echo '<hr><a><span class="badge bg-red">' . $board['topic'] . '</span></a>';
      echo '</div></div>';
     }
  ?>

这段代码的功能是:

public function get_boards(){
    $getBoards = $this->database->query("SELECT * FROM boards ORDER BY id DESC");
    $boards = $this->database->resultset();

    return $boards;

}

public function get_topics(){
    $getTopic = $this->database->query("
    SELECT topics.*, klanten.foto, klanten.voornaam, klanten.achternaam FROM topics 
    LEFT JOIN klanten ON topics.klant_id=klanten.id
    ORDER BY id ASC");
    $topics = $this->database->resultset();

    return $topics;

}

总结,我想要什么:

我希望它显示具有正确主题的正确板。如您所见,销售页面有一个board_id 2,因此它需要显示“Nieuws & events”而不是“stel jezelf voor”

额外

如果可能的话,我希望它使整个记录/div 都可以点击。有什么提示/技巧吗?

【问题讨论】:

  • 你确定klanten表有这个记录吗?
  • 是吗? @Whencesoever 它与那个 + 无关,因为你可以看到它显示 foto = photo 所以它与那个无关,我需要一种方法来显示正确的 board_id
  • 需要查看klanten 表。我认为您正在尝试加入 topicsboards
  • @Sinto 我需要这样做是的!但我很困惑怎么做你有答案吗? + 添加 klanten 表
  • 这是什么klanten 表???

标签: php html mysql sql


【解决方案1】:

我认为你正在尝试像下面JOIN 那样做一些思考,你能检查一下

SELECT boards.topic, topics.topicnaam 
FROM topics 
LEFT JOIN boards ON boards.id = topics.boards_id 
ORDER BY topics.id ASC

如果如您所说,有一个名为klanten 的表,则查询将是:

SELECT boards.topic, topics.topicnaam, klanten.foto 
FROM topics 
LEFT JOIN boards ON boards.id = topics.boards_id 
LEFT JOIN klanten ON topics.ledenpagina_id = klanten.ledenpagina_id 
GROUP BY topics.id 
ORDER BY topics.id ASC

【讨论】:

  • 有!看问题我加了klanten db的图片
  • 你想要记录为salespage + Nieuws &amp; events + tom.jpg & 其他两个topicsstel jezelf voor + tom.jpg... ???
  • 我想要它显示它现在所做的事情,但现在它没有得到正确的 boards_id 记录,所以你可以看到最后一条记录有 boards_id 2 所以我不需要显示stel jezelf voor,但它需要显示Nieuws &amp; events
  • 你在说什么.. 我不明白。有没有错误。你期望的结果是什么?你现在得到了什么?我已经为你写了查询函数get_topics()。请在查询中添加必要的字段以及相应的表名。或者请直接在数据库中运行查询并查看结果。
  • 请在代码的 HTML 部分将 $board['topic'] 更改为 $topic['topic']
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多