如何在PHP和JS中定制动态网站
How to customize a dynamic website in PHP and JS?
我正在一个网站上工作,分析我从几个远程仪表获得的能源数据。我使用JS, PHP和mySQL。我开发的网站与一个客户的数据(具体类型和远程仪表的数量)。这是我做的第一个网站,我有很多东西要学。
有以下步骤:
- 登录表单//每个人都一样
- PHP检查登录//每个人都一样
- 索引页//每个人都一样
- Javascript与AJAX函数将数据(日期范围)发送到php文件(calculation.php)以计算内容//JS文件对每个人都是一样的
- PHP文件从mySQL获取数据,并做了很多关于能源的计算,然后返回 JS文件获取数据(通过AJAX),然后通过谷歌图表库显示图形
- 在PHP文件中为每个客户端添加一个条件,比如"if "client_id=X"//这看起来太糟糕了,有几十个客户端
- 为每个客户端编写不同的PHP文件。写的名字这个PHP文件在mysql表"clients"中。编写一个中间php文件,该文件将根据然后将特定的PHP文件"包含"到临时文件中。
- 将PHP PDO请求以字符串类型写入表
"clients",然后从PHP文件"calculation.php"中查询。PHP文件将执行正确的命令。
这些解决方案对我来说似乎不太好(也许是第三个?)你知道吗?提前谢谢你。
编辑php代码示例
第一个客户:
$reponse1 = $bdd->prepare("SELECT DATE_FORMAT(Date, '%H:%i') AS timekey, AVG(Value) FROM meter1 WHERE Date>='$from' AND Date<='$to' GROUP BY timekey");
$reponse1->execute();
$myArrayLP24temp1['Hour']= $reponse1->fetchAll(PDO::FETCH_COLUMN, 0);
$reponse1->execute();
$myArrayLP24temp1['Value']= $reponse1->fetchAll(PDO::FETCH_COLUMN, 1);
$reponse2 = $bdd->prepare("SELECT DATE_FORMAT(Date, '%H:%i')AS timekey, AVG(Value) FROM meter2 WHERE Date>='$from' AND Date<='$to' GROUP BY timekey");
$reponse2->execute();
$myArrayLP24temp2['Value']= $reponse2->fetchAll(PDO::FETCH_COLUMN, 1);
for ($ii=0; $ii<24*4; ++$ii){
$meter1NoRound=$myArrayLP24temp1['Value'][$ii]*4;
$meter2NoRound=$myArrayLP24temp2['Value'][$ii]*4;
$meter1=round($meter1NoRound,1);
$meter2=round($meter2NoRound,1);
$myArrayLP24['rows'][]= array('c' => array( array('v'=>$myArrayLP24temp1['Hour'][$ii]), array('v'=>($meter1)), array('v'=>($meter2))));
第二客户端:
$reponse1 = $bdd->prepare("SELECT DATE_FORMAT(Date, '%H:%i') AS timekey, AVG(Value) FROM meter1 WHERE Date>='$from' AND Date<='$to' GROUP BY timekey");
$reponse1->execute();
$myArrayLP24temp1['Hour']= $reponse1->fetchAll(PDO::FETCH_COLUMN, 0);
$reponse1->execute();
$myArrayLP24temp1['Value']= $reponse1->fetchAll(PDO::FETCH_COLUMN, 1);
for ($ii=0; $ii<24*4; ++$ii){
$meter1NoRound=$myArrayLP24temp1['Value'][$ii]*4;
$meter1=round($meter1NoRound,1);
$myArrayLP24['rows'][]= array('c' => array( array('v'=>$myArrayLP24temp1['Hour'][$ii]), array('v'=>($meter1))));
上面的例子显示了两种不同的代码。第一个是两米的客户端,第二个是一米的客户端。它可以是10米,有时会有下标米我需要加起来有时不需要。因此,每个客户机的代码都是不同的(除了具有完全相同配置的客户机,但这种情况不会经常发生)。
为什么不在数据库中存储变量值?然后,当客户来的时候,你有所有需要的信息来进行计算。
尽可能地简化和标准化思考。永远不要忘记一个好的开发人员是一个懒惰的人;-)
编辑
当你说:
"问题是获取AJAX POST(步骤4和步骤5结束)的PHP文件不会对每个客户机进行相同的计算。"
你是什么意思?
- 每个客户端的计算公式不一样吗?
- 在公式中使用的值对于每个客户端是不同的吗?
可能我没有很好地理解你需要什么。如果是,请发送一段代码来说明您的问题。
相关文章:
- 点击几个按钮后动态网站更改
- 没有客户端 URL 处理的动态网站
- 动态网站更新脚本
- 如何为现有的动态网站制作安卓应用程序
- 如何从动态网站获取完整的网址
- 使用 JavaScript/jquery/PHP 构建一个动态网站,并将 HTML 存储在 MySQL 中
- 如何从动态网站在LESS中设置变量
- 动态网站宽度
- 动态网站的JS框架
- 动态网站的分页头
- 在动态网站中安排JS代码的最佳实践
- 动态网站内容没有Javascript
- 文件系统中的动态网站导航(一个文件用于所有页面)—无需Web服务器
- 使用AJAX为单页动态网站设计和SEO
- JQuery动态网站,页面链接
- 如何将Javascript链接到动态网站
- Angular.js:在动态网站中使用指令
- 保持动态网站的标题
- 垂直距离控制如果它溢出到下一行,在移动动态网站
- 如何在PHP和JS中定制动态网站