PHP使用mysql_fetch_array填充表

时间:2014-12-01 02:28:41

标签: php

Ok在你告诉我使用mysqli之前,我正在使用折旧的方法来进行webapp课程。我不是学生,这不是作业,而是帮助我教会理解Web应用程序的安全性。

我无法弄清楚为什么这不起作用。基本上,我想要做的就是创建一个页面,从mysql数据库获取数据并将其放入表中,如图所示。在这一点上,我对任何事情持开放态度。

提前谢谢。

 <html>
 <head><title>Untitled</title></head>
 <body>
  <h1>Weblog Example</h1>
 <dl>
 <?php
   mysql_connect("localhost","root","");
   mysql_select_db("blog1");
   $query ="SELECT entrytitle, entrytext,";
   $query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS entrydate";
   $query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10";
   $result=mysql_query($query);
  
   ?>
   <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="15%" align="center" bgcolor="#E6E6E6"><strong>Title</strong></td>
<td width="75%" align="center" bgcolor="#E6E6E6"><strong>Entry</strong></td>
<td width="15" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td>
</tr>
  
<?php
  while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['entrytitle']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['entrytext']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['entrydate']; ?></td>
</tr>

<?php
}
?>

 </dl>
 </body>
</html>

好了一些小编辑 - 它现在在表格中给了我3行但是没有填充数据......

3 个答案:

答案 0 :(得分:1)

您在while循环中使用了错误的变量,但您还没有从查询结果中引用正确的date列。

这可以为您提供您正在寻找的内容:

<?php
  while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrytitle']; ?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrytext']; ?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrydate']; ?></td>
</tr>

<?php
}
?>

答案 1 :(得分:1)

在$ entrytitle和$ entrytext上做一个var_dump,你就会理解你的错误。 当你执行mysql_fetch_array时,数据会临时存储到$行中。

<?php
  while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytitle"]; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytext"]; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytext"]; ?></td>
</tr>

<?php
}
?>

答案 2 :(得分:0)

你的$query.=应该只读为$query .=,这将是一个问题,并且由于点之前缺少空间而无法正确连接。

您还缺少</table>标记。

另外,请确保设置/打开短标签,否则执行<?php echo $rows...
而不是<? echo $rows...

您还应该使用以下方法检查可能的查询错误:

$result = mysql_query($query) or die(mysql_error());

并使用error reporting

将错误报告添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应仅在暂存时完成,而不是生产。