0
提供我要输出一个5列的表基于下面的查询参数无效,在phpMyAdmin的输出是正确的,但我得到的错误:PHP表警告:为的foreach
提供的foreach无效参数()上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 jos_jquarks_users_profiles AS users_profiles
LEFT JOIN jos_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 jos_jquarks_quizzes_answersessions
WHERE quizsession_id = quizSession.id AND status <> -1) AS score,
(SELECT count(distinct question_id) FROM jos_jquarks_quizzes_answersessions
WHERE quizsession_id = quizSession.id) AS maxScore,
DATE_FORMAT(quizSession.finished_on,'%M %d, %Y') AS FinishedOn
FROM jos_jquarks_quizsession AS quizSession
LEFT JOIN jos_jquarks_users_quizzes AS users_quizzes ON users_quizzes.id = quizSession.affected_id
LEFT JOIN jos_jquarks_quizzes AS qui ON users_quizzes.quiz_id = qui.id
LEFT JOIN jos_jquarks_quizzes_answersessions AS quizSessAns ON quizSessAns.quizsession_id = quizSession.id
LEFT JOIN jos_jquarks_sessionwho AS sessionWho ON sessionWho.session_id = quizSession.id
LEFT JOIN jos_jquarks_users_profiles AS users_profiles ON users_profiles.user_id = sessionWho.user_id
LEFT JOIN jos_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 ";
$thStyle = "padding:7px ";
echo '<table style="' . $tableStyle . '" cellpadding="7" cellspacing="7">';
echo "<tr> <th style=align:center>Quiz Title </th><th style=align:center> 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>";
?>
这表明,查询失败或产生的结果,你没有想到的。尝试在加载结果后添加'vardump($ row);'以确保你看到你期望的结果。 –
作为一个额外的提示 - 有编写(X)HTML的规则,你不能以你想要的方式写它;尽管大多数使用者都非常宽容。例如它是'
'或'
',而不是''。 – wonk0