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行但是没有填充数据......
答案 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
旁注:错误报告应仅在暂存时完成,而不是生产。
mysqli
with prepared statements或PDO with prepared statements,他们更安全。