MrNegativeTW / NoAwfulFood

你念南臺嗎?那就來這邊找食物,都搜集好了
http://no-awful-food.byethost7.com
2 stars 0 forks source link

關於店家資料處理部份 #1

Closed MksYi closed 6 years ago

MksYi commented 6 years ago

你好:

關於
/arrays/door____Shop
/location/*
以上的頁面資料應該有更好的處理方法

首先以 doorLeftShop.php 為例子
一打開看到如此驚人的畫面...
後續如果要維護也力不從心吧...

你有提到沒有使用 Database
所以採用 array 的寫法
但如果結構弄成 Json 的方式
後續寫前端也會方便很多

以下我簡單弄了一個 PHP Json 的資料來源

$doorRightShopJson = '[{
    "name": "MoM\'s Touch",
    "class": [
        "素食"
    ],
    "phone": [
        "未提供//待搜集"
    ],
    "Times": [
        "午餐",
        "晚餐"
    ],
    "Drink":"另購",
    "Soup":"無",
    "SelfClean":"是",
    "delivery":"不提供",
    "MinCharge":"無",
    "image":"無",
    "menu":"無"
},{
    "name": "馬來小館",
    "class": [
        "鍋燒",
        "飯食"
    ],
    "phone": [
        "未提供/待搜集"
    ],
    "Times": [
        "午餐",
        "晚餐"
    ],
    "Drink":"另購",
    "Soup":"無",
    "SelfClean":"是",
    "delivery":"不提供",
    "MinCharge":"無",
    "image":"無",
    "menu":"無"
}]';

Json 的存取方式可以寫在程式碼內 也可以獨立出 Json File 之後在 Local 讀檔就好了 接著透過 PHP 的內建 Function 進行處理 並且跑個foreach秀出資料 如下:

$doorRightShopData = json_decode($doorRightShopJson);
echo print_r($doorRightShopData);

echo "<br/>";
echo "<br/>";
echo "<br/>";

foreach($doorRightShopData as $data){
    echo "店名:" . $data->name . "<br/>";
    echo "飲食類型:";
    foreach($data->class as $class){
        echo $class . " ";
    }
    echo "<br/>";
    echo "電話:";
    foreach($data->phone as $phone){
        echo $phone . " ";
    }
    echo "<br/>";
    echo "營業時段:";
    foreach($data->Times as $Times){
        echo $Times . " ";
    }   
    echo "<br/>";
    echo "飲料:" . $data->Drink . "<br/>";
    echo "湯品:" . $data->Soup . "<br/>";
    echo "自行收拾:" . $data->SelfClean . "<br/>";
    echo "提供外送:" . $data->delivery . "<br/>";
    echo "最低消費:" . $data->MinCharge . "<br/>";
    echo "圖片:" . $data->image . "<br/>";
    echo "菜單:" . $data->menu . "<br/>";
    echo "<br/>";
}
MrNegativeTW commented 6 years ago

其實我本來是想用DB的,可是PHP連線時帳密的保護不知如何下手,有問到可以新增一個權限低的使用者,可是ByetHost要付費才能,後來又爬到可以用Google Sheets當資料庫,但在實作方面實在是搞不定,所以最後在知識匱乏的情況下才採用array,這邊也感謝學長提供的PHP Json方法,最近我剛好在處理這坨資料,我會再進一步研究的 :D

MksYi commented 6 years ago

關聯式資料庫一般虛擬主機都會提供至少一個吧?
ByetHost 有提供 cPanel 控制臺嗎?
如果有 cPanel 直接透過 WEB 介面去設定帳號存取權限就好了~ 當整個資料有結構之後
後續做開發也會更簡單
例如加個~
不知道吃什麼的時候,食物種類選一選,依照使用者時段骰出符合條件的店家(選擇障礙市場大)

MrNegativeTW commented 6 years ago

hennnnn不幸的,ByetHost提供的是vistaPanel,而在資料庫的帳號部分,他們有寫到升級帳號才能新增更多使用者 index

未來有能力我預計會新增篩選功能跟上面提到的隨機選擇