PHP

时间:2015-10-16 06:34:06

标签: php mysql

抱歉我的英语不好。

所以这是我在数据库中的表。

 course - lecturer - time
 CSS --- John --- 8:00 AM, 2016/01/21, Sunday
 CSS --- John --- 10:00 AM, 2016/01/23, Tuesday
 CSS --- John --- 1:00 PM, 2016/01/25, Thursday
 HTML --- Ben --- 10:00 AM, 2016/01/22, Monday
 HTML --- Ben --- 8:00 AM, 2016/01/23, Tuesday

正如您所看到的,课程和讲师是重复的,但不同行的时间不同。每当我尝试从数据库中获取并查看到html页面时,它会为每一行创建一个表,这是一个愚蠢而不专业的。

我希望输出如下:

    <table border=2>
        <tr>
            <td> course name :  </td> <td colspan=3> css </td>
        </tr>
        <tr>
            <td> lecturer :  </td> <td colspan=3> John </td>
        </tr>
        <tr>
            <td> time :  </td> <td> 8:00 AM, 2016/01/21, Sunday </td> <td> 10:00 AM, 2016/01/23, Tuesday </td> <td> 1:00 PM, 2016/01/25, Thursday </td>
        </tr>
    </table>

我试过但我刚刚意识到我对PHP不够好。

这是我原来的PHP代码......

$qry="SELECT * FROM courses";
$results=mysql_query($qry);
if($results)
{
if(mysql_num_rows($results) > 0)
{
while ($rows = mysql_fetch_array($results))
{
echo "<center><table width=400 border=1>
<tr><td><b> Course Name : </b></td><td>". $rows["course"]."</td></tr>
<tr><td><b> Lecturer Name : </b></td><td>". $rows["lecturer"]."</td></tr>
<tr><td><b> Time : </b></td><td>". $rows["time"]."</td></tr>
</center></table><br>";
}
}
else {echo "<center>not available</center>";}
}

抱歉,如果我烦恼的话。

3 个答案:

答案 0 :(得分:0)

你必须替换:

for (var i=0; i < result.rows.length; i++) {
    myJson.push(result.rows.item(i));
}

$qry="SELECT * FROM courses";
$results=mysql_query($qry);
if($results)
{
if(mysql_num_rows($results) > 0)
{
while ($rows = mysql_fetch_array($results))
{
echo "<center><table width=400 border=1>
<tr><td><b> Course Name : </b></td><td>". $rows["course"]."</td></tr>
<tr><td><b> Lecturer Name : </b></td><td>". $rows["lecturer"]."</td></tr>
<tr><td><b> Time : </b></td><td>". $rows["time"]."</td></tr>
</center></table><br>";
}
}
else {echo "<center>not available</center>";}
}

这应该做到了。你必须在循环之外定义表,这就是你为每个行分隔表所用的原因。

希望它有所帮助。

答案 1 :(得分:0)

Use this  




 $qry="SELECT * FROM courses";
        $results=mysql_query($qry);
        $table = '<table width=400 border=1><thead><tr><th>Course Name</th><th>Lecturer Name</th><th>Time</th></tr></thead><tbody>';
        if($results)
        {
        if(mysql_num_rows($results) > 0)
        {
        while ($rows = mysql_fetch_array($results))
        {

         $table .= '<tr>'
                   . '<td>' .$rows["course"]. '</td>'
                   . '<td>'  .$rows["lecturer"]. '</td>'
                   . '<td>' .  $rows["time"] . '</td>'
                   . '<tr>';


        }
        }
        else {echo "<tr><td>Data not available</td></tr>";}
        }

$table .= '</tbody>'
       . '</table>';

答案 2 :(得分:0)

试试这个SQL:

<?php
$qry = "SELECT DISTINCT lecturer, course, 
(SELECT GROUP_CONCAT(time) FROM lectures WHERE lecturer = L.lecturer) 
AS times FROM lectures L";
$results=mysql_query($qry);
if($results)
{
if(mysql_num_rows($results) > 0)
{
?>
<table>
<?php
while ($rows = mysql_fetch_array($results))
{
echo "<tr><td><b> Course Name : </b></td><td>". $rows["course"]."</td>
<td><b> Lecturer Name : </b></td><td>". $rows["lecturer"]."</td>
<td><b> Times : </b></td><td>". $rows["times"]."</td></tr>";
}
}
else {echo "<center>not available</center>";}
}
?>
</table>

将输出:

 lecturer   course  times   
John        CSS           2015-10-15 05:14:00,2015-10-16 09:21:18,2015-10-23 07:15:15
Ben     HTML    2015-10-23 07:19:19,2015-10-30 09:17:18