我正在创建一个要在网页上显示的表格,该表格是从MySQL数据库中的数据填充的。我正在尝试做一些让我很难的事情。
首先,我试图通过JavaScript调用HTML中的单独文件中存在的PHP代码。我认为我的工作正常,但我不是百分百肯定(因为表格不会显示)。我认为它正常工作,因为表格(在PHP文件中)的部分显示在FireBug中。
其次我试图让它变成行以交替颜色以便于查看。到目前为止我的PHP代码如下。该表在任何浏览器中都不会显示。
$query = "SELECT * FROM employees";
$result = mysql_query($query);
$num = mysql_num_rows($result);
echo '<table>';
for ($i = 0; $i < $num; $i++){
$row = mysql_fetch_array($result);
$id = $row['id'];
$l_name = $row['l_name'];
$f_name = $row['f_name'];
$ssn = $row['ssn'];
$class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row";
echo "<tr>";
echo "<td class=" . $class . ">$wrap_id</td>";
echo "<td class=" . $class . ">$wrap_l_name</td>";
echo "<td class=" . $class . ">$wrap_f_name</td>";
echo "<td class=" . $class . ">$wrap_ssn</td>";
echo "</tr>";
}
echo '</table>';
mysql_close($link);
}
修改
回答几个问题:
@controlfreak123,我不确定你的意思是“include('filename_with_php_in_it')”。对于未被调用的页面,我认为它正在被调用并且正在进行联系。我在原始问题中指出,我认为这是正确的,因为FireBug显示了表的代码,并且该代码位于单独的PHP文件中,因此必须在HTML文件和PHP文件之间进行通信。以下是我如果您想知道如何从HTML文件中调用PHP文件:
<script language="javascript" type="text/javascript" src="/Management/Employee_Management.php?action=Edit_Employee"></script>
@Matt S,我没有太多的输出方式,事实上我不知道我得到任何东西,直到我看到FireBug并看到PHP代码(或其中一些)确实是被传递给HTML文件。具体问题是如何从MySQL数据库中获取我想要的数据并通过PHP将其填充到HTML表中。我还可以确认employees
中确实有数据,我输入了两个用于测试的条目。我可以尝试将代码放入自己的文件而不使用你建议的JavaScript,但这会打败我的目的,因为我希望我的HTML和PHP文件是分开的,但我可能只是为了看看PHP代码是否良好并确保JavaScript没有破坏它。
@Aaron,我不确定你在问什么(对不起)。该代码用于填充在HTML页面上创建和填充表格。
答案 0 :(得分:15)
以下是您正在寻找的完整示例:
对于造型我欺骗了一点并使用jquery,我发现你想要做的事情要容易一些。
另外,请记住$ row [field]区分大小写。所以$ row [id]!= $ row [ID]。
希望这会有所帮助:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
tr.header
{
font-weight:bold;
}
tr.alt
{
background-color: #777777;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$('.striped tr:even').addClass('alt');
});
</script>
<title></title>
</head>
<body>
<?php
$server = mysql_connect("localhost","root", "");
$db = mysql_select_db("MyDatabase",$server);
$query = mysql_query("select * from employees");
?>
<table class="striped">
<tr class="header">
<td>Id</td>
<td>Name</td>
<td>Title</td>
</tr>
<?php
while ($row = mysql_fetch_array($query)) {
echo "<tr>";
echo "<td>".$row[ID]."</td>";
echo "<td>".$row[Name]."</td>";
echo "<td>".$row[Title]."</td>";
echo "</tr>";
}
?>
</table>
</body>
</html>
这是表格代码,仅使用PHP来替换您在示例中尝试执行的样式:
<table class="striped">
<tr class="header">
<td>Id</td>
<td>Title</td>
<td>Date</td>
</tr>
<?php
$i = 0;
while ($row = mysql_fetch_array($query)) {
$class = ($i == 0) ? "" : "alt";
echo "<tr class=\"".$class."\">";
echo "<td>".$row[ID]."</td>";
echo "<td>".$row[Name]."</td>";
echo "<td>".$row[Title]."</td>";
echo "</tr>";
$i = ($i==0) ? 1:0;
}
?>
</table>
答案 1 :(得分:3)
您的代码未执行的原因是您不能将PHP包含在Script标记中。您必须使用PHP的include函数,并且必须将原始页面解析为PHP。
<?php
include('./my_other_file.php');
?>
答案 2 :(得分:0)
编码的开始有点不对劲。它应该是: -
<?php
$query = "SELECT * FROM employees";
$result = mysql_query($query);
$num = mysql_num_rows($result);
echo '<table>';
if($num) {
while( $row = mysql_fetch_array($result) ) {
// all logic for each of the rows comes here
}
}
else {
// no rows fetched, so display proper message in a row
}
echo "</table>";
?>
第一次在资源处理程序上使用“mysql_fetch_array”函数,之后它无法正常工作。这个答案可能看起来有点模糊,但我已经多次看过了,所以我总是使用“while”或“do-while”循环从DB中获取多行。
尝试使用上述代码,&amp;看看是否有任何信息。