我在公共托管服务(MySQL,PHP)上托管了一个小应用程序,我正在做的是从数据库输入和获取数据,并在html中生成一些表,其中显示所获取的数据。代码示例如下。
我100%确定这不是一个如何做这样的应用程序的好方法。真正让我烦恼的是,在使用PHP获取数据旁边(我认为还可以)我还要使用PHP生成HTML(我觉得这真的不太好)。
是否有一些好的,推荐的技术如何分离这两件事?要有一些HTML页面并且有一些数据结构只能向服务器发送请求并将提取的数据从服务器传送到客户端?还是其他一些技术?
感谢您的回答
$mysqli = new mysqli('localhost', 'money_l', 'password', 'money_l');
$query1 = "SELECT date, name, value FROM list WHERE date between '$s_date' and '$e_date' ORDER BY date";
$query2 = "SELECT date, name, value FROM income WHERE date between '$s_date' and '$e_date'";
$query3 = "SELECT date, name, SUM(value) value FROM list WHERE date between '$s_date' and '$e_date'GROUP BY date UNION ALL
SELECT date, name, SUM(value) value FROM income WHERE date between '$s_date' and '$e_date' GROUP BY date";
$result = $mysqli->query($query1);
while ($row = $result->fetch_array(MYSQL_ASSOC))
{
$sum_list = $sum_list + $row['value'];
}
echo "<table align='center'><tr><td>";
$result = $mysqli->query($query1);
echo "List of costs from " . $s_date . " to " . $e_date;
echo "<div id='loggerTable'>
<table><th>Date of operation</th><th>Description</th><th>Amount</th>";
while ($row = $result->fetch_array(MYSQL_ASSOC))
{
echo "<tr><td>";
echo $row['date'];
echo "</td><td>";
echo $row['name'];
echo "</td><td align='right'>";
echo $row['value'];
echo "</td></tr>";
}
$result = $mysqli->query($query3);
while ($row = $result->fetch_array(MYSQL_ASSOC))
{
$plot_row1[] = $row['value'];
$plot_row2[] = $row['date'];
}
echo "<td></td>";
echo "<th>Summary</th><th>$sum_list</th>";
echo "</table>";
答案 0 :(得分:1)
我建议你使用MVC设计模式(或者更好地使用跟随这些模式的Cakephp
,Laravel
之类的php框架。)
如果您遵循MVC,您的所有逻辑都将在模型中(例如:从数据库中获取数据,对其进行一些工作/操作)。之后,将这个(格式良好的)数据传递给您的控制器,该数据将进一步发布/发送给视图(具有干净的HTML代码)。你只需要一个循环(包含数据数组)来填充html。在视图/ html中没有丑陋的php逻辑,因为大多数这些事情已经在模型中完成了。
如果您对此不了解,请搜索MVC设计模式。我的回答涵盖了非常基本的想法。
以下资源很少: