codeigniter 代码触发器:电子图书馆,展示有作者的图书

shyt4zoc  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(106)

早上好,女士/先生。我需要帮助显示所有的书沿着作者。由于一些书有1个作者,我需要显示所有的书和作者,但它只显示1个作者使用组,即使书有2个或更多的作者
The authors are tom and jerry but it only display tom
Table AuthorsTable Books

public function getbooks()
 {
   return $this->db->select('*')->from('tbl_books')
   ->join('tbl_section','tbl_books.section_id=tbl_section.section_id')
   ->join('tbl_authors','tbl_books.book_id=tbl_authors.book_id')
   ->group_by('tbl_authors.book_id')
    ->get()->result_array();

 }
View:
          <tbody>                              
             <?php foreach ($booklists as $value): ?>
            <tr class="odd gradeX">
            <td class="center"><?php echo $value['book_id'] ?></td>
            <td class="center"><?php echo $value['book_title'] ?></td>
            <td class="center"><?php echo $value['section_name'] ?></td>
            <td class="center"><?php echo $value['author_name'].','.$value['author_name'] ?> 
          </td>
            <td class="center"><?php echo $value['book_serial'] ?></td>
            <td class="center"><?php echo $value['book_qty'] ?></td>
            <td class="center">

            <a href="<?php echo base_url('Admin/Editbook/'.$value["book_id"]) ?>"><button 
           class="btn btn-primary"><i class="fa fa-edit "></i> Edit</button> 
            <a href="<?php echo base_url('Admin/Deletebook/'.$value["book_id"]) ?>">  <button 
           class="btn btn-danger"><i class="fa fa-trash"></i> Delete</button>
            </td>
            </tr>
            <?php endforeach ?>
            </tbody>
vybvopom

vybvopom1#

如果我没记错的话,当你group_by author's table book_id的时候,你只会得到一个book的结果,每个结果只有一个author name列。你可以直接用group_concat来追加author name。

$this->db->select("*, group_concat(author_name separator ', ') as concat_names")
     ....
     ->group_by('tbl_authors.book_id')
     ->get()->result_array();

然后,您可以使用concat_names检索作者姓名,如下所示:

<td class="center"><?php echo $value['concat_names'] ?></td>

此外,强制PSA,您应该使用htmlspecialchar以避免跨站点脚本和以后的问题。

<td class="center"><?php echo htmlspecialchar($value['concat_names']) ?></td>

相关问题