1

PHP で簡単な荷物の受け取りと返却の管理ツールを作成しました。到着したすべての荷物といつピックアップされるかのリストを生成します。

私がしていることは、データベースを調べて、その特定の日のすべての予約をロードすることです。

$query = mysql_query("SELECT * FROM `luggage_requests` WHERE 
`request_start`='".date("Y-m-d")."' 
OR 
`request_end`='".date("Y-m-d")."'");

次に、この結果からすべての予約を配列に読み込みます。

        $requests[] = $row["request_id"];

また、クライアントが荷物を降ろしたり、受け取りに来た時間も読み込みます。

        ///######## DETERMINE THE IN OUT STATE
    if($row["request_start" == date("Y-m-d")){
        ///######## ASSIGN THE CORRECT TIME
        $request_times[] = (int)str_replace(":", "", $row["request_time1"]);
    }
    ///######## 
    elseif($row["request_eind"] == date("Y-m-d" ){
        ///######## ASSIGN THE CORRECT TIME
        $request_times[] = (int)str_replace(":", "", $row["request_time2"]);
    }

このリストは、*array_multisort* を使用して、クライアントが荷物を降ろしたり受け取ったりした時点でソートされます。

通常、荷物は 2 ~ 3 日後に引き取られます。

ただし、場合によっては、同じ日に再度ピックアップされることもあります。私のコード構成の問題は、システムが同じ予約を 1 回しか表示しないことです。

そして、クライアントが同じ日に戻ってきた場合。クライアントが荷物を降ろしに来た瞬間だけが表示されます。しかし、彼または彼女がそれを取りに来る時ではありません。

私はこれをきれいできれいな方法で解決する方法がまったくわかりません。

同じ変数を 2 回読み込んで論理的に並べ替えることができないためです。しかし、私はこれまで以上にこの問題に直面しています。

これを解決する方法を知っている人はいますか?

よろしくお願いします。

完全なコードの下:

<?php

///######## QUERY TO PLACE ALL ITEMS INTO AN ARRAY
$inout_parse_query = mysql_query("SELECT * FROM `luggage_requests` WHERE `request_start`='".date("Y-m-d")."' OR `request_end`='".date("Y-m-d")."'") or die(mysql_error());            
while ($row = mysql_fetch_array($inout_parse_query)) {
    ///######## IF THE REQUEST HAS NOT BEEN SAVED ALREADY
    if(!in_array($row["request_id"], $requests)){
        ///######## SAVING ALL IDS INTO AN ARRAY
        $requests[] = $row["request_id"];
        ///######## DETERMINE THE IN OUT STATE
        if($row["request_start" == date("Y-m-d")){
            ///######## ASSIGN THE CORRECT TIME
            $request_times[] = (int)str_replace(":", "", $row["request_time1"]);
        }
        ///######## 
        elseif($row["request_eind"] == date("Y-m-d" ){
            ///######## ASSIGN THE CORRECT TIME
            $request_times[] = (int)str_replace(":", "", $row["request_time2"]);
        }
    }
}

///######## SORT THE ARRAYS AT THE HAND OF THE TIME
array_multisort($request_times, $requests);

?>

素晴らしい!!返信いただきありがとうございます!!私はあなたの解決策が何であるかをすべて理解していません。しかし、1番目に機能します!小さなテスト環境で試してみました!そして、それは機能します。

2番目に、学ぶべき新しいことがいくつかあります。あなたのソリューションは、さらに学ぶための良いスタートを切ることができます. どうもありがとう!!

4

1 に答える 1