鍍金池/ 問答/PHP  數(shù)據(jù)庫/ PHP或mysql如何遍歷

PHP或mysql如何遍歷

這是前臺顯示頁面,業(yè)務(wù)邏輯是這樣的:

如果填酒店名,就必須填金額,時(shí)間(紅框位置,三個Input框?yàn)榫频昝Q,消費(fèi)金額,時(shí)間),
但是這6項(xiàng)不是必填項(xiàng)。

我是用from表單提交,然后到控制器頁面挨個判斷,是否為空,為空該值=0,然后將這些數(shù)據(jù)整體插入到數(shù)據(jù)庫中,但是這里一共18個值,感覺做法有點(diǎn)差勁,請問是否有比較高端的進(jìn)行操作呢?

在數(shù)據(jù)庫中,這18個字段是一列。如下:
酒店1,金額1,時(shí)間1,酒店2,金額2,時(shí)間2.....

clipboard.png

回答
編輯回答
六扇門

你看下這樣行不行。
把input的value用數(shù)組表示,然后后臺接收到的所有input在一個數(shù)組中

$hotels = array();
$arr = $_POST['arr'];

foreach ($arr as $k => $v) {
    if($k%3 == 0){
        if($v){
            if(!$arr[$k+1] || !$arr[$k+2]){
                echo json_encode(array(
                    "code" => -1,
                    "msg"  => "如果填酒店名,就必須填金額,時(shí)間",
                ));
                die;
            }
            $hotels[] = array(
                "name" => $v,
                "cost" => $arr[$k+1],
                "time" => $arr[$k+2],
            );
        }else{
            $hotels[] = array(0, 0, 0);
        }
    }
}
echo json_encode(array(
    "code" => 0,
    "msg"  => "success",
));
2018年1月9日 20:54
編輯回答
話寡

木有高檔的做法,判斷是否為空,簡單粗暴

2018年6月5日 17:42
編輯回答
夏木

表單里的參數(shù)可以寫成數(shù)組形式:<input type="text" name="time[]" />,這個可以了解一下

2018年8月16日 15:08