php html登陆逻辑,保持演示文稿(HTML)和逻辑(PHP)分开

我试图保持演示和逻辑分离,而不使用像Smarty这样的模板引擎.到目前为止我所做的工作是有效的,但我不知道如果不在我的演示文稿中添加更多

PHP而不是我想做的事情.例如,现在我有这样的事情:

product_list.php

try {

$query = $conn->prepare("SELECT p.id,p.name,p.description,IFNULL(url,title) AS url,GROUP_CONCAT(c.category SEPARATOR ',') AS category,FROM products p

LEFT JOIN product_categories pc ON p.id = pc.product_id

LEFT JOIN categories c ON pc.category_id = c.id

WHERE p.active = 1

GROUP BY p.id");

$query->execute();

$result = $query->fetchAll(PDO::FETCH_ASSOC);

}

catch (PDOException $e) {

echo $e->getMessage();

}

include('templates/product_list_tpl.php');

product_list_tpl.php

= $header_title; ?>

Category: = $row['category']; ?>

在上面的例子中,一些产品将有一个类别,一些将具有多个.它们在逗号分隔列表中很好地显示,但我想将类别名称变为链接.我知道我可以做类似下面的事情,但对我来说似乎很麻烦.

= $div_title; ?>

<?= $row['title']; ?>

= $row['title']; ?>

= $row['caption']; ?>

= $row['description']; ?>

Category: 

<?php foreach ($categories as $key => $category): ?>

= $category; ?>

= (sizeof($categories) > 1 && $key == end($categories)) ? ', ' : ''; ?>

Rating: = $row['rating']; ?>

Rated = $row['rated']; echo ($row['rated'] == 1) ? ' time' : ' times'; ?>

提前感谢您的任何建议.此外,如果任何人对我在示例代码中使用的一般分离格式有任何输入,我很乐意听到它.我在休息8年后才开始重新编码.

编辑:根据@Devon在评论中建议,在第三个代码块上添加了缺少的endforeach和改进的缩进.

编辑:我更新了第三个代码块,包括我之前遗漏的HTML,并添加了实现我正在寻找的输出所需的所有PHP功能.它有效,但IMO这样做可以消除我的分离.我现在基本上只有一个文件与我的数据库调用和另一个文件与此混乱.我觉得我没有朝着正确的方向寻找正确的业务逻辑/表示逻辑分离.

我哪里错了?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

层次分析法matlab_建模开讲课程回放2:层次分析法及其MATLAB

建模开讲&#xff1a;层次分析法及其MATLAB实践主讲人&#xff1a;于晶贤老师课程回放地址如下&#xff0c;大家可以复制链接到地址栏即可观看&#xff0c;也可以直接点击左下角的观看&#xff1a;https://ke.qq.com/webcourse/index.html?fromqqchat&cid493154&term_…

raw input()和input区别

版本差异 raw_input——》python2版本 input——》python3版本 2. 输入格式差异 就是raw_input()随便输都是字符串&#xff0c;而input()必须按照Python的规则来~ raw_input() nameraw_input(‘输入姓名&#xff1a;’) ageraw_input(‘输入年龄’) 我们输入汉字的姓名和数…

防抖debounce和节流throttle

大纲 一、出现缘由 二、什么是防抖debounce和节流throttle 三、应用场景 3.1防抖 3.2节流 一、出现缘由 前端开发中&#xff0c;有一部分用户行为会频繁触发事件&#xff0c;而对于DOM操作&#xff0c;资源加载等耗费性能的处理&#xff0c;很可能导致卡顿&#xff0c;甚至浏览…

不同vlan之间如何ping通_【丰润达.安防百科】如何实现交换机不同VLAN、不同网段之间互访?...

交换机如何实现不同网段的互访&#xff1f;这个交换机完全可以实现&#xff0c;在实际项目中&#xff0c;交换机实现不同网段的互访用的也比较多&#xff0c;那么今天我们一起来看下。▎同一个vlan中&#xff0c;不同网段的主机如何互通同一个vlan&#xff0c;不同网段的主机如…

oracle字段加约束,Oracle数据库的字段约束创建和维护示例

创建Oracle数据库的字段约束&#xff1a;非空约束唯一约束对字段的取值的约束默认值外键约束create table tab_class(class_id number primary key,class_name varchar2(10) not null unique);create table tab_stu(stu_id number,--学生姓名&#xff0c;不能为空&#xff0c;不…

实例5:python

#输入三个整数x,y,z&#xff0c;请把这三个数由小到大输出。 l [] for i in range(3): x int(input(‘integer:\n’)) l.append(x) l.sort() print (l)

python识别节假日_Python3自动签到 定时任务 判断节假日的实例

不废话&#xff0c;直接上代码Python3.6签到代码&#xff0c;只需修改url&#xff0c;账号&#xff0c;密码即可&#xff0c;此处是登录时无验证登录&#xff0c;有验证码的自行补充# -*- coding:utf-8 -*-import jsonimport urllib.requestimport datetime# 模拟浏览器打开网站…

[BZOJ 5074] 小B的数字

题目传送-BZOJ5074 题意&#xff1a; T组数据 你有一个数组\(A\)&#xff0c;要求一个数组\(B\)\(B\)中的数都是2的正整数次幂。 令\(x\prod_{i1}^nB_i\),有\(x|B_i^{A_i},i\in1,2,3,...,n\)成立\(T \le 10,n \le 100000\) 题解&#xff1a; 首先\(B\)可以直接转化为每个元素的…

matlab数学实验第七章课后答案,matlab数学实验第七章答案

参考答案如下[单选,共用题干题] 患者男性&#xff0c;数学实验35岁&#xff0c;数学实验4天前因不慎划破皮肤后出现高热、皮肤瘀斑来院。查体&#xff1a;体温39.1℃&#xff0c;血压110&#xff0f;70mmHg&#xff0c;呼吸30次&#xff0f;分&#xff0c;心率107次&#xff0f…

Python List sort()方法

描述 sort() 函数用于对原列表进行排序&#xff0c;如果指定参数&#xff0c;则使用比较函数指定的比较函数。 语法 sort()方法语法&#xff1a; list.sort(cmpNone, keyNone, reverseFalse) 参数 • cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 • key –…

oracle sql-1,Oracle – Oracle SQL(1)

Oracle – Oracle SQL(1)1. 简介(1) SQL : Structured Query Language&#xff0c;结构化查询语言&#xff0c;专门用于数据存取、数据更新及数据库管理等操作。(2) Oracle SQLDDL: Data Define Language数据定义语言包括CREATE、ALTER、DROP、TRUNCATE、COMMENT、RENAME等命令…

背景图层和普通图层的区别_008Photoshop四赞图层(图层样式)

图层过滤器图层滤镜&#xff0c;比如你只想看到像素图层&#xff0c;选择像素图层过滤器&#xff0c;这时就只能看到背景图层了(在图层面板)&#xff0c;如果再点击像素图层过滤器&#xff0c;其他图层又出现了。选中调整图层过滤器&#xff0c;就只能看到图层结构里的调整图层…

洛谷P3628 [APIO2010]特别行动队(斜率优化)

传送门 先写出转移方程$$dp[i]max\{dp[j]a*(sum[i]-sum[j])^2b*(sum[i]-sum[j])c\}$$ 假设$j$比$k$更优&#xff0c;则有$$dp[j]a*(sum[i]-sum[j])^2b*(sum[i]-sum[j])c>dp[k]a*(sum[i]-sum[k])^2b*(sum[i]-sum[k])c$$ 展开&#xff0c;并消去同类项之后得$$dp[j]-2*a*sum[i…

实例6:python

#斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;指的是这样一个数列&#xff1a;0、1、1、2、3、5、8、13、21、34、……。 #F0 0 (n0) #F1 1 (n1) #Fn F[n-1] Fn-2 #!/usr/bin/python -- coding: UTF-8 -- #def fib(…

简述oracle的主要数据库对象,Oracle数据库数据对象分析

Oracle数据库数据对象分析Oracle数据库数据对象中最基本的是表和视图&#xff0c;其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。表和视图Oracle中表是数据存储的基本结构。…

vue devtools面板没有显示_vue 基础入门(四)

vue 基础入门(四)1.全局配置Vue.config 是一个对象&#xff0c;包含 Vue 的全局配置。可以在启动应用之前修改下列 property&#xff1a;1.1 silent类型&#xff1a;boolean默认值&#xff1a;false用法&#xff1a;Vue.config.silent true❝取消 Vue 所有的日志与警告。❞1.2…

SpaceVim 语言模块 lua

原文连接&#xff1a; https://spacevim.org/cn/layers/lang/lua/ 模块简介启用模块快捷键 交互式编程运行当前脚本模块简介 这一模块为在 SpaceVim 中进行 lua 开发提供了支持&#xff0c;包括代码补全、语法检查、代码格式化、交互式编程以及调试等特性。 启用模块 可通过在配…

python之def

1.def &#xff08;define的前三个字母&#xff09;是一个关键字&#xff0c;用来声明函数。 2.def 声明函数的格式为&#xff1a; def 函数名(参数1&#xff0c;参数2&#xff0c;…&#xff0c;参数n)&#xff1a; 函数体 例如&#xff1a; def fib(n): print ‘n ’, n if n…

php pdo 00000,php-即使有错误,PDO错误代码也总是00000

我使用PHP 7.1.23测试了以下代码&#xff1a;$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,true);$sth $pdo->prepare(select now() and this is a bad sql where a - b from c);if ($sth false) {echo "error on prepare()\n";print_r($pdo->errorInf…

vue 生命周期_Vue生命周期小白看了都会的

最近一直在学习Vue&#xff0c;而vue生命周期是我们不可能绕开的一个很核心的知识点&#xff0c;今天来简单的梳理一下大概的内容。一、钩子函数在一开始学习的时候&#xff0c;总有钩子函数这个名词冒出来&#xff0c;而且在vue官网文档中也频繁出现&#xff0c;也相信给很多初…