-1

だから、私はこの問題を抱えています。オブジェクト指向プログラミングの練習に最善を尽くしており、このセミ OOP スクリプトから始めました。それがどのように機能するか、私は portal_robot_error witch と呼ばれる 1 つのテーブルを持っています。これにはすべてのロボット エラーが含まれています。それから私は portal_robot_service 魔女と呼ばれる別のメインテーブルを持っています サービスの最高レベル. このテーブルに接続すると、さらに 2 つが portal_robot_service テーブルにリンクされます。これらは portal_service_robot_errorservice および portal_service_robot_changeservice と呼ばれ、サービスの詳細が含まれています。この部分を十分に説明できたことを願っています。

これが私がやりたいことです。ユーザーがロボットを検索すると、すべてのエラーとすべてのサービスが日付順のリストで終了する必要があります。

例: ユーザーはロボット 21 を検索します。 結果: エラー 1 - 日付、ロボット、位置、エラー コードなど エラー 2 - 日付、ロボット、位置、エラー コードなど サービス 1 - 日付、ロボット、サービス タイプなど エラー 3 -日付、ロボット、位置、エラーコードなど エラー 4 - 日付、ロボット、位置、エラーコードなど...

スクリプトは現在エラーのみを表示しているため、リストにサービスを表示するにはどうすればよいですか?

前もって感謝します!

<?php   
elseif(!empty($query) && empty($inDate) && empty($id) && empty($dateLike)) {
$arr    = array();
$q      = mysql_query("SELECT * FROM portal_robot_error WHERE robot = '$robot'");

while($r = mysql_fetch_object($q)) {

    $m = "Robot ".$r->robot;
    $s = mysql_query("SELECT * FROM portal_service WHERE service_date >= '$this->lastService' AND service_date <= '$r->date' AND service_module = '$m' AND service_id > '$this->lastId' LIMIT 1");

    if(mysql_num_rows($s) > 0) {
        echo "SELECT * FROM portal_service WHERE service_date >= '$this->lastService' AND service_date <= '$r->date' AND service_module = '$m' AND service_id > '$this->lastId' LIMIT 1<br />";
        $z              = mysql_fetch_object($s);
        $this->lastId   = $z->service_id;

        if($z->service_type == "Errorservice") {
            $e                      = mysql_query("SELECT * FROM portal_service_robot_errorservice WHERE service_id = '$z->service_id'");
            $f                      = mysql_fetch_object($e);
            $errorservice_track     = $f->tracksensor;
            $errorservice_gripper   = $f->gripper;
            $errorservice_cover     = $f->cover;
            $errorservice_wheel     = $f->wheel;
            $service_text           = "Errorservice HIHIHIHI".$this->lastId;
            $service                = new Error($this->lastId, $z->service_date, "", "", $z->service_module, "", "", $z->service_type, $z->service_comment, $service_text, "", $z->service_user);
            array_push($arr, $service);                     
        }
        elseif($z->service_type == "Changeservice") {
            $e                      = mysql_query("SELECT * FROM portal_service_robot_changeservice WHERE service_id = '$z->service_id'");
            $f                      = mysql_fetch_object($e);
            $service_text           = "Changeservice HIHIHIHI".$this->lastId;
            $service                = new Error($this->lastId, $z->service_date, "", "", $z->service_module, "", "", $z->service_type, $z->service_comment, $service_text, "", $z->service_user);
            array_push($arr, $service);
        }
    }
    else {
        $n   = new Error($r->error_id, $r->date, $r->stoptime, $r->starttime, $r->robot, $r->rob_status, $r->position, $r->error_code, $r->observation, $r->solution, $r->downtime, $r->user);
        array_push($arr, $n);
        $this->lastService = $r->date;
    }

}   
return $arr;
}
?>
4

1 に答える 1

0

さて、私は解決策を見つけました。データをデータベースにインポートしたときに何か問題が発生し、すべての末尾に \r が追加されました。私の問題は、 if($z->service_type == "Changeservice") がヒットしなかったことです。それは誰も見ていない末尾の \r のせいでした...

PDOとMySQLiについて調べます:)

于 2012-12-20T15:56:42.607 に答える