怎么获取mysql数据库中字段的名字
$sql="selectid,Project,Priority,ToBeDonefromTestplanswhereAssignee='17'";$result=mysq...
$sql="select id,Project,Priority,ToBeDone from Testplans where Assignee='17' ";
$result=mysql_query($sql);
我想做一个table,但是表头怎么在数据库中提取出来?不想这样手写:<table><tr><th>id</th><th>Project</th><th>Priority</th><th>ToBeDone</th></tr>
我试着用:
<table><tr><?php
$field=mysql_fetch_field($result);
while($field)
{
echo "<th>$field->name</th>";
}
</tr>
但是出现浏览器死掉。。。
echo mysql_num_fields($result); 显示有4个字段,怎么获取这4个字段的名字呢?在线等,谢谢啦~~~
这种方法能输出表身么?(就是表中的内容)
$row=mysql_fetch_row($result);
while($row)
{
echo "<tr>";
for($i=0;$i<$num;$i++) //这里$num=mysql_num_fields($result),得到的4个
//字段数,也就是每一行有4个表格!
{
echo "<td>".$row[$i]."</td>";
}
echo "</tr>";
} 展开
$result=mysql_query($sql);
我想做一个table,但是表头怎么在数据库中提取出来?不想这样手写:<table><tr><th>id</th><th>Project</th><th>Priority</th><th>ToBeDone</th></tr>
我试着用:
<table><tr><?php
$field=mysql_fetch_field($result);
while($field)
{
echo "<th>$field->name</th>";
}
</tr>
但是出现浏览器死掉。。。
echo mysql_num_fields($result); 显示有4个字段,怎么获取这4个字段的名字呢?在线等,谢谢啦~~~
这种方法能输出表身么?(就是表中的内容)
$row=mysql_fetch_row($result);
while($row)
{
echo "<tr>";
for($i=0;$i<$num;$i++) //这里$num=mysql_num_fields($result),得到的4个
//字段数,也就是每一行有4个表格!
{
echo "<td>".$row[$i]."</td>";
}
echo "</tr>";
} 展开
4个回答
展开全部
$sql="select id,Project,Priority,ToBeDone from Testplans where Assignee='17' ";
$result=mysql_query($sql);
$i=0;
while($arr = mysql_fetch_assoc($result)){
if($i==0){ //第一条的时候就输出表头
$keys = array_keys($arr);
echo "<table><tr>";
for($y=0;$y<=3;$y++){
echo "<th>".$keys[$y]."</th>";
}
echo "</tr>";
}
//循环内容
$i++;
}
换了一个思路~用mysql_fetch_assoc 这样的返回结果的键名刚好就是字段名~SO
$result=mysql_query($sql);
$i=0;
while($arr = mysql_fetch_assoc($result)){
if($i==0){ //第一条的时候就输出表头
$keys = array_keys($arr);
echo "<table><tr>";
for($y=0;$y<=3;$y++){
echo "<th>".$keys[$y]."</th>";
}
echo "</tr>";
}
//循环内容
$i++;
}
换了一个思路~用mysql_fetch_assoc 这样的返回结果的键名刚好就是字段名~SO
更多追问追答
追问
谢谢啊,现在搞清楚了 array_keys()就明白了,不过输出表身怎么就出现无限循环了。。
//输出表身!
$row=mysql_fetch_row($result);
while($row)
{
echo "";
for($i=0;$i".$row[$i]."";
}
echo "";
}
追答
$sql="select id,Project,Priority,ToBeDone from Testplans where Assignee='17' ";
$result=mysql_query($sql);
$num=mysql_num_fields($result)
$i=0;
while($arr = mysql_fetch_assoc($result)){
$keys = array_keys($arr);
if($i==0){ //第一条的时候就输出表头
echo "";
for($y=0;$y".$keys[$y]."";
}
echo "";
}
echo "";
for($i=0;$i".$arr[$keys[$i]]."";
}
echo "";
$i++;
}
你试一试呢~
把表体也在这个while里面循环出来~
-----------------------------------------
$row=mysql_fetch_row($result);
while($row)
{
这样的语句会造成死循环= =
第一句~$row=mysql_fetch_row($result); 返回了数据集的第一行数据~
接着下来的while($row) 。 如果数据的第一行有数据~那么返回的$row就一定为true。
所以~这里的while($row) 就变成了 while(true) .所以造成了死循环
--------------------------------------------
正确的用法。应该是
while($row =mysql_fetch_row($result) )
看起来好像没有差别。
其实是
while里面的条件~是执行一条获取数据的方法,方法执行成功了,并且成功返回值了,才为true。
并且ysql_fetch_row/array/assoc 。在执行后,会自动将指针指入下一行。
循环再返回的时候,就会去读出下一条数据。
直到没有数据~返回false。循环也就结束了。
--------------------------------
第一种写法错误的主要原因是,while的条件,恒为true;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我直接给你 使用结果集的代码
$i = 0;
echo "<table>";
while($res = mysql_fetch_array($result))
{
if($i == 0){
echo "<tr>";
foreach($res as $k as $v)
{
echo "<td>".$k."</td>";
}
echo "</tr>";
}
echo "<tr>";
foreach($res as $value)
{
echo "<td>".$value."</td>";
}
echo "</tr>";
}
echo "</table>";
$i = 0;
echo "<table>";
while($res = mysql_fetch_array($result))
{
if($i == 0){
echo "<tr>";
foreach($res as $k as $v)
{
echo "<td>".$k."</td>";
}
echo "</tr>";
}
echo "<tr>";
foreach($res as $value)
{
echo "<td>".$value."</td>";
}
echo "</tr>";
}
echo "</table>";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
form(“”);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询