根据用户输入显示带有for循环的表列

时间:2012-11-06 04:43:47

标签: php mysql ajax

我正在研究大学软件,并且陷入了关键时刻。我正在运行一个查询,它将返回studentid,names和rollno(s),我需要根据教师输入的一个术语的分配数量,显示带有文本框的表格列。例如,如果用户输入为3,我想显示3列,即分配1,分配2,分配3以及学生姓名和rollno。然后,表格行将包含所有学生姓名和文本框,用于输入所有三个作业的标记。此外,我通过ajax请求显示此表,这意味着PHP将必须动态创建输出并显示给用户。我假设一个嵌套循环将不得不用于此但我不知道如何。必须根据用户输入创建列,并且行应基于mysql查询结果。

我的代码是:

$userinput = 3; // hypothetical
$q6 = mysql_query("select * from students");
while($row = mysql_fetch_array($q6)){
$data[] = $row; 
}

echo "<table class='reglist' border='1' width='100%'>";
// start i loop
for($i=1;$i<=$userinput;$i++){
echo "<tr>
<th style='font-size:14px;'>S.No</th>
<th style='font-size:14px;'>Roll No</th>
<th style='font-size:14px;'>Name</th>
<th style='font-size:14px;width:50px;'>Assignment 1</th> // THESE COLUMNS SHUD BE BASED         ON THE USER INPUT.  
</tr>"; }

关于如何根据用户输入创建表头,然后根据mysql返回的学生数显示行,我被困在这里。

请帮忙。

2 个答案:

答案 0 :(得分:0)

试试这段代码:

$q6 = mysql_query("select * from students");

echo "<table class='reglist' border='1' width='100%'>";
echo "<tr>
<th style='font-size:14px;'>S.No</th>
<th style='font-size:14px;'>Roll No</th>
<th style='font-size:14px;'>Name</th>
<th style='font-size:14px;width:50px;'>Assignment 1</th>
<th style='font-size:14px;'>Assigmnent 2</th>
</tr>";

while ($row = mysql_fetch_array($q6)) {
    echo "<tr>
    <th style='font-size:14px;'>{$row['stud_num']}</th>
    <th style='font-size:14px;'>{$row['roll_num']}</th>
    <th style='font-size:14px;'>{$row['name']}</th>
    <th style='font-size:14px;width:50px;'>{$row['assign_one']}</th>
    <th style='font-size:14px;'>{$row['assign_two']}</th>
    </tr>";

}

答案 1 :(得分:0)

代码流应该是这样的:

<?php
$userinput = 3;
// Assuming your columnnames for your students table were s_no, roll_no, name, assignment1, assignment2
$query= mysql_query("select * from students");
?>

<table>
<tr>
    <th style='font-size:14px;'>S.No</th>
    <th style='font-size:14px;'>Roll No</th>
    <th style='font-size:14px;'>Name</th>
    <?php
    for($i=0; $i<$userinput; $i++)
    {
    ?>
        <th style='font-size:14px;width:50px;'>Assignment <?php echo $i+1;?> </th> <!--this will display Assignment 1, Assignment 2 -->
    <?
    }//end for
    ?>
</tr>

<tr id="wrapper"> <!--assign an id here so you can use this on your ajax request -->
    <?php
        while($row = mysql_fetch_array($query)){
    ?>
            <td><?php echo $row['s_no'];?></td>
            <td><?php echo $row['roll_no'];?></td>
            <td><?php echo $row['name'];?></td>
            <?php
            for($i=0; $i<$userinput; $i++)
            {
            ?>
                <td> I dont know what are you trying to display here.</td>
            <?php
            }//end for
            ?>

    <?php
        }//end while
    ?>
</tr> 

</table>

假设您在数据库中有3名学生。上面的代码将显示以下内容:This is the sample output base on the code above