Форматирование вывода таблицы из кода php - PullRequest
0 голосов
/ 11 августа 2011

Я написал следующий код, но каким-то образом заголовки не соответствуют сгенерированным столбцам в отрисованной таблице, может кто-нибудь подсказать, как его улучшить?

    <?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>";
?>

1 Ответ

2 голосов
/ 11 августа 2011

У вас есть 5 <th> заголовков, но выберите 6 столбцов из вашей таблицы. Либо явным образом напечатайте поля из таблицы, которую вы хотите (вы должны), или измените запрос, чтобы выбрать только те 5, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...