【发布时间】:2015-05-17 12:08:58
【问题描述】:
我有一个带有下拉菜单的表单。每当我选择一个节目时,系统都会显示节目分数表。但是当我选择服务名称时,它不会显示服务表。另外,有没有更好、更快、更高效的方式来显示数据库中的表格?
这是我的表格:
我得到的错误:
progscores.php
<?php
include'connect.php';
$crit=@$_POST['crit'];
$y2005=@$_POST['y2005'];
$y2006=@$_POST['y2006'];
$y2007=@$_POST['y2007'];
$y2008=@$_POST['y2008'];
$y2009=@$_POST['y2009'];
$y2010=@$_POST['y2010'];
switch($_POST['program'])
{
case 'Computer Science':
$table = 'csprog';
break;
case 'BAED':
$table = 'baedprog';
break;
case 'Psychology':
$table = 'psyprog';
break;
}
$res = mysql_query("SELECT * FROM {$table}");
?>
<html>
<body>
<table width="600" border="1" cellspacing="1">
<tr>
<th>Criteria</th>
<th>2005</th>
<th>2006</th>
<th>2007</th>
<th>2008</th>
<th>2009</th>
<th>2010</th>
</tr>
<?php
while($table=mysql_fetch_assoc($res)){
echo "<tr>";
echo "<td>".$table['crit']."</td>";
echo "<td>".$table['y2005']."</td>";
echo "<td>".$table['y2006']."</td>";
echo "<td>".$table['y2007']."</td>";
echo "<td>".$table['y2008']."</td>";
echo "<td>".$table['y2009']."</td>";
echo "<td>".$table['y2010']."</td>";
echo "</tr>";
}
?>
</table>
</body>
</html>
principal.php
<?php
include 'connect.php';
if($_POST['program']){
include 'progscores.php';
}elseif($_POST['services']){
include 'servscores.php';
}
?>
servscores.php
<?php
include'connect.php';
$scrit=@$_POST['scrit'];
$sy2005=@$_POST['sy2005'];
$sy2006=@$_POST['sy2006'];
$sy2007=@$_POST['sy2007'];
$sy2008=@$_POST['sy2008'];
$sy2009=@$_POST['sy2009'];
$sy2010=@$_POST['sy2010'];
switch($_POST['services'])
{
case 'Library':
$stable = 'library';
break;
case 'Course Administrator':
$stable = 'cadmin';
break;
case 'Front Desk':
$stable = 'frontdesk';
break;
case 'Clubs and Societies':
$stable = 'clubs';
break;
case 'IT Services and Facilities':
$stable = 'itservice';
break;
case 'International Student Office':
$stable = 'stoffice';
break;
}
$res2 = mysql_query("SELECT * FROM {$stable}");
?>
<html>
<body>
<table width="600" border="1" cellspacing="1">
<tr>
<th>Criteria</th>
<th>2005</th>
<th>2006</th>
<th>2007</th>
<th>2008</th>
<th>2009</th>
<th>2010</th>
</tr>
<?php
while($stable=mysql_fetch_assoc($res2)){
echo "<tr>";
echo "<td>".$stable['scrit']."</td>";
echo "<td>".$stable['sy2005']."</td>";
echo "<td>".$stable['sy2006']."</td>";
echo "<td>".$stable['sy2007']."</td>";
echo "<td>".$stable['sy2008']."</td>";
echo "<td>".$stable['sy2009']."</td>";
echo "<td>".$stable['sy2010']."</td>";
echo "</tr>";
}
?>
</table>
</body>
</html>
【问题讨论】:
-
“{”和“}”是干什么用的? var_dump($table) 用于您的查询。为什么使用静态年份而不是 date("Y") 例如?
-
您的查询不正确 mysql_query() 在成功时返回资源,或在错误时返回 FALSE,这就是您收到该错误的原因
-
我的猜测是您的 switch 语句不起作用,并且该表始终设置为 null,这就是您的查询返回 false 而不是资源的原因
标签: php mysql html-table