从php代码格式化输出表
问题描述:
我已经写了下面的代码,但不知何故头不匹配呈现表中生成的列,,有人可以给我一个提示如何改善它?从php代码格式化输出表
<?php
$database =& JFactory::getDBO();
//Declare Variables
$user = JFactory::getUser();
$id = $user->get('id');
$name = $user->get('name');
// Display quizzes
echo "</br>";
echo "Quizzes History for : " ;
echo "<b>";
echo $name;
echo "</b>";
echo "</br>";
echo "</br>";
$database->setQuery('SELECT distinct qui.title AS name,' .
' (SELECT GROUP_CONCAT(profiles.title)
FROM #__jquarks_users_profiles AS users_profiles
LEFT JOIN #__jquarks_profiles AS profiles ON users_profiles.profile_id = profiles.id
WHERE users_profiles.user_id = sessionWho.user_id) AS profile, ' .
' (SELECT sum(score)
FROM #__jquarks_quizzes_answersessions
WHERE quizsession_id = quizSession.id
AND status <> -1) AS score,' .
' (SELECT count(distinct(question_id))
FROM #__jquarks_quizzes_answersessions
WHERE quizsession_id = quizSession.id) AS maxScore,' .
' (SELECT count(id)
FROM #__jquarks_quizzes_answersessions
WHERE status=-1
AND quizsession_id = quizSession.id) AS evaluate,' .
' quizSession.finished_on,sessionWho.email' .
' FROM #__jquarks_quizsession AS quizSession' .
' LEFT JOIN #__jquarks_users_quizzes AS users_quizzes ON users_quizzes.id = quizSession.affected_id' .
' LEFT JOIN #__jquarks_quizzes AS qui ON users_quizzes.quiz_id = qui.id' .
' LEFT JOIN #__jquarks_quizzes_answersessions AS quizSessAns ON quizSessAns.quizsession_id = quizSession.id' .
' LEFT JOIN #__jquarks_sessionwho AS sessionWho ON sessionWho.session_id = quizSession.id' .
' LEFT JOIN #__jquarks_users_profiles AS users_profiles ON users_profiles.user_id = sessionWho.user_id' .
' LEFT JOIN #__jquarks_profiles AS profiles ON profiles.id = users_profiles.profile_id '.
' WHERE sessionWho.user_id =' .$id) ;
if (!$database->query()) { //write data and if error occurs alert
echo "<script> alert('".$database->getErrorMsg()."'); </script>";
}
//var_dump($database);
$tableStyle = "padding: 5px;border:1px";
$tdStyle = "padding:5px ";
echo '<table style="' . $tableStyle . '" cellpadding="7" cellspacing="7">';
echo "<tr> <th> Quiz Title </th><th> Score </th><th>Maximum Score </th><th> Unanswered </th> <th>Finished On </th></tr>";
$row = $database->loadRowList();
foreach($row as $valuearray)
{
echo '<tr style=" align="center">';
foreach($valuearray as $field)
{
echo "<td>$field</td>";
}
echo "</tr>";
}
echo "</table>";
?>
研究使用[HEREDOCs](http://php.net/heredoc)来构建这些SQL查询。它将为您节省重复字符串连接的麻烦,并允许您使用缩进“很好”地写出它。 –
不知道它是否对某些东西有影响,但是在这个字符串中“echo”
哇,什么是查询你有4个子查询和6个连接,你能告诉我这是什么性能?只是想知道 – WooDzu
回答
您有5
<th>
标题,但从表中选择6列。显式打印您想要的表格中的字段(您应该),或更改查询以仅选择您想要的5。我需要的6个领域,你可以告诉我如何可以增加我的表到6,并可能分开标题来匹配列,,,? – Tony77
在你想要的表的第一行写'
标题现在没有与输出内联,如何可以给生成的HTML给一个静态测量 – Tony77
相关问题