作者bakedgrass (蒙古烤小草)
看板PHP
標題Re: [請益] php 和商品資訊
時間Thu Dec 3 07:15:26 2020
※ 引述《spong (請輸入ID)》之銘言:
: 如果SQL中有商品相關資訊,如:規格、描述...等,要將產品資訊,塞到html中自己設計的
: 卡片區塊(div),需要重複建立卡片區塊在,在塞入資料?還是可以在php中先連上資料庫
: ,用for迴圈建立卡片區塊,這樣畫面沒有css、bootstrap的輔助,顯示出來的網頁會不會
: 很醜,還是可以在php中引入css、bootstrape
: 剛學沒多久,還請鞭小力一點
基本上比較複雜的網站都是像前面推文說的一樣都是MVC架構。
這裡用一個簡單的單頁程式來作例子看怎樣把php和前端語法結合在一起。
------------
<?php
/*
這裡開始撈資料,內容就省略。一般來說MVC架構會在這裡把來自model的資料讀出來
而非在這裡直接讀資料庫。但這裡為了簡潔,假設我們在這裡讀資料庫的內容。
*/
// 把資料存成在陣列裡面,等等取用。為了簡潔,這裡就不考慮其他處理或跳脫。
$products = $mysqli->fetch_all(MYSQLI_ASSOC);
?>
<html>
<head>
<!--內容省略-->
</head>
<body>
<table class="table">
<!-- 你可以把php語法包在小的<?php ?>裡面,這樣就不會跟HTML混在一起 -->
<?php foreach($products as $product): ?>
<!-- 現在你在迴圈內了,這裡面的HTML語法都會跟著迴圈重複 -->
<tr>
<!--你可以使用<?=?>來當作縮短版的echo來使用-->
<td>
<?=$product["product_name"]?>
</td>
<td>
<!--if的道理也是一樣-->
<?php if(!$product['qty']): ?>
<!--PHP語法以外你要怎樣套用CSS、bootstrap都可以-->
<span class="badge badge-danger">無庫存</span>
<?php endif; ?>
</td>
</tr>
<!-- 沒有用括弧記得要用endforeach關閉迴圈 -->
<?php endforeach; ?>
</talbe>
</body>
</html>
--------------------------
這樣一來你就可以把HTML語法跟PHP結合在一起,渲染各種CSS格式等等。也不會把所有
的HTML語法塞在echo裡面,讓程式更加可讀。
當然這是非常簡單的版本,讓你了解怎樣把PHP的結果用前端語言渲染出來。總有一天
你學得深了,或是有真正實務上的需求了,就會知道上面範例不是真正良好的示範,但
那是後話了。
希望這樣對你有幫助。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 70.71.184.148 (加拿大)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1606950928.A.1E4.html
※ 編輯: bakedgrass (50.67.17.136 加拿大), 12/03/2020 13:08:16
1F:噓 powyo: 這寫法也太古老了吧 12/04 10:51
2F:推 gpmm: 推一個熱心分享 12/05 23:33
3F:推 GALINE: 與其說古老,我覺得更像是讓PHP做原本設計的任務:樣版引擎 12/08 11:06
4F:→ newversion: <?= 這寫法要小心用。 short open tag 不一定開 12/09 04:21
5F:→ bakedgrass: 謝謝大家的回饋 12/09 11:27
6F:→ bakedgrass: <?= 在官方文件裡面好像是被歸類成normal tag 12/09 11:28
8F:→ newversion: 5.4.0 後才改的, 避免踩雷盡量不要用 12/10 00:45
9F:→ bakedgrass: 謝謝建議 12/10 05:42
10F:→ bakedgrass: 我有看過一些相關的爭議,也有人覺得可以放心使用。但 12/10 05:43
11F:→ bakedgrass: 我會記得你的建議 12/10 05:43
12F:推 mohai: PHP 全銜不是超文字預處理器嗎?這樣寫到底哪裡古老了 12/11 12:06
13F:推 Kenqr: 5.3是11年前的版本 就算真的需要支援還是可以從設定開啟 12/13 20:27
14F:→ Kenqr: 所以這寫法是很安全的 12/13 20:27
15F:推 Dinjang: 可以用 PHP7以下的都該升了 12/14 14:58
16F:推 MangoTW: 古老嗎 可以去瞭解一下 Personal Home Page 問世的意義 02/21 18:35