mmx384 发表于 2013-04-13 16:30

请高手解释一下,这是什么情况?php输出html表格出问题

本帖最后由 mmx384 于 2013-04-13 16:32 编辑

请各位看看这是什么情况,快要搞晕了。

出现问题如图:
http://hc5621722.130188.dprktimes.com/search.php



页面代码如下:<?php
session_start();
header("Content-type: text/html; charset=utf-8");


$dbhost = 'admin.130188.dprktimes.com';
$dbbase = 'mmx384';
$dbuser = 'mmx384';
$dbpwd = '××××××××';

$dblink = mysql_connect($dbhost,$dbuser,$dbpwd) or die('连接数据库失败:'.mysql_error());
//mysql_close($dblink);
mysql_select_db($dbbase,$dblink) or die( "不能选定数据库 ${dbbase}:".mysql_error());
mysql_query("set names utf8",$dblink) or die('set names error.');


$HTML = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>';
$putstr = $HTML."<form id='myform' name='myform' method='post' >";

$xq = 14;
$sid = 1;
$gid = 1;

$sqlstr = "select `stu`.`sit`,`stu`.`cid`,`stu`.`num`,`arch_stu`.`name` from `stu` left join `arch_stu` on `stu`.`num` = `arch_stu`.`num` where `stu`.`xq` = ${xq}   and `stu`.`sid` = ${sid} and`stu`.`gid` = ${gid} order by `stu`.`cid` asc,`stu`.`sit` asc";

//echo $sqlstr;

unset($num_arr);
$result = mysql_query($sqlstr,$dblink) or die('查询失败,未知错误请联系管理员');
if(mysql_num_rows($result) > 0){
                while($rs=mysql_fetch_array($result)){
                                $sit_arr[] = $rs['sit'];
                                $class_arr[] = $rs['cid'];
                                $num_arr[] = $rs['num'];
                                $name_arr[] = $rs['name'];
                }
}


$putstr .= '<table border="1">';
$putstr .= '<tr ><td>座位</td><td>班级</td><td>学籍号</td><td>姓名</td></tr>';
if(isset($num_arr)){
                foreach($num_arr as $i=>$val){
                                $putstr .= '<tr>';
                                $putstr .= "<td>".$sit_arr[$i]."</td>";//座位号
                                $putstr .= "<td>一(1)</td>";//班级
                                $putstr .= "<td>".$num_arr[$i]."</td>";//学籍号
                                $putstr .= "<td>".$name_arr[$i]."</td>";//姓名
                                $putstr .= '</tr>';
                }
}
$putstr .= '</table>';
$putstr .= '</form></body></html>';
echo $putstr;
?>如果[班级]列是不是中文则表格正常。

xinglu1983 发表于 2013-04-15 13:39

数据里有html标签字符,比如 "<" ">"

pianist_cu 发表于 2013-04-15 14:45

直接看看数据库里面id=45的这个字段的值,很可能是错的。

mmx384 发表于 2013-04-16 10:29

本帖最后由 mmx384 于 2013-04-16 10:35 编辑

谢谢两位回复,现在测试的情况是这样:

上面的PHP代码非常简单,班级列的值如一(1),一(2)之类,如果不输出班级,或者输出班级ID没有中文,表格也没有问题。
所以刚开始以为是中文问题,设置了
header("Content-type: text/html; charset=utf-8");
mysql_query("set names utf8",$dblink);
但问题依旧。但是如果不从数据库取数据,表格也没有问题。

hbeimf 发表于 2013-04-16 17:49

路过看看,

gavindev 发表于 2013-04-20 15:46

你就不能学学MVC么,再搞搞smarty或搞搞框架

mmx384 发表于 2013-04-21 14:22

gavindev 发表于 2013-04-20 15:46 static/image/common/back.gif
你就不能学学MVC么,再搞搞smarty或搞搞框架

这个站我原来用ASP,想学学PHP,这是第一次用PHP做东西,本想等完成这个东西之后再学习用smarty。谢谢指点!

craaazy123 发表于 2013-04-22 19:14

你查看一下html源码看你那行输出的是什么
页: [1]
查看完整版本: 请高手解释一下,这是什么情况?php输出html表格出问题