структура таблицы php / html работает не так, как я хочу

#php #html #mysql

#php #HTML #mysql

Вопрос:

Я пытаюсь создать таблицу, из которой он извлекает информацию из базы данных. Предполагается, что в нем указано имя модуля, а затем количество назначений. Задействованы две таблицы базы данных, одна из которых — это просто идентификатор и имя модуля, другая — идентификатор, назначение, тема, содержимое и т. Д. По какой-то причине моя таблица отображается некорректно, она просто продолжается, а не начинается с новой строки для этой таблицы. вот изображение того, что он делает введите описание изображения здесь

вот код (если нужно больше, дайте мне знать):

     <div id="module_1" class="row CourseModule">
            <a href="#" onclick="showAssignments(1);">
                <div class="col-lg-12 columnPad">
                    <h1-1 class="lead">List of Modules</h1-1>
                    </a>
                    <div class="pullright">
                        <a id="addAssignmentbutton_1" class="btn btn-primary ThemeButton" href="#" onclick="addAssignment(1);"> Add Assignment</a>
                    </div>
                </div>
        </div>
<div id="module_Assignments_1" class="row CanvasPad" style="display:none;">
            <table class="CanvasTable">
                <thead>
                    <th>
                         Module
                    </th>
                    <th>
                        Assignments
                    </th>
                </thead>
                <?php 
                    while($row = mysqli_fetch_assoc($result)){
                        $count = 0; 
                        $query = "SELECT module_id FROM module_records";
                        $result2 = mysqli_query($con, $query);
                        if(!$result2){
                            echo "Can't retrieve data " . mysqli_error($con);
                            exit;
                        }
                        while ($modInassignment = mysqli_fetch_assoc($result2)){
                            if($modInassignment['module_id'] == $row['module_id']){
                                $count  ;
                            }
                        }
                ?>
                <td>
                    <a href="assignmentpermodule.php?modid=<?php echo $row['module_id']; ?>"><?php echo $row['module_name']; ?></a>
                </td>
                <td>
                    <span class="badge"><?php echo $count; ?></span>
                </td>
                <?php } ?>
                
                    <a href="module.php">List all assignments</a>
                
            </table>
        </div>

.js
function showAssignments(module_id){
    var html_id = "#module_Assignments_"   module_id;
    if($(html_id).css("display") == 'block'){
        $(html_id).css("display", "none");
    } else {
        $(html_id).css("display", "block");
    }
}
  

Ответ №1:

Вам нужна строка таблицы tr , а затем данные таблицы td в ней

Кроме того, не требуется, но подходит для группировки без добавления divs / class / id; добавьте все это tr внутри a tbody , если это необходимо. Подробнее, почему это не требуется здесь

 <table class="CanvasTable">
    <thead>
        <th>
            Module
        </th>
        <th>
            Assignments
        </th>
    </thead>
    <tbody>
        <?php 
            while($row = mysqli_fetch_assoc($result)){
                $count = 0; 
                $query = "SELECT module_id FROM module_records";
                $result2 = mysqli_query($con, $query);
                if(!$result2){
                    echo "Can't retrieve data " . mysqli_error($con);
                    exit;
                }
                while ($modInassignment = mysqli_fetch_assoc($result2)){
                    if($modInassignment['module_id'] == $row['module_id']){
                        $count  ;
                    }
                }
        ?>
        <tr>
            <td>
                <a href="assignmentpermodule.php?modid=<?php echo $row['module_id']; ?>"><?php echo $row['module_name']; ?></a>
            </td>
            <td>
                <span class="badge"><?php echo $count; ?></span>
            </td>
        </tr>
        <?php } ?>
        
    </tbody>
    <a href="module.php">List all assignments</a>
</table>
  

Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr