所以,我有這個問題。我正在盡我所能來練習面向對象編程,並且我已經開始使用這個半OOP腳本。它是如何工作的,我有一個名爲portal_robot_error的表包含所有機器人錯誤。然後我有另一個主表portal_robot_service女巫是服務的最高級別。連接到這張表我還有2個與portal_robot_service錶鏈接。這些稱爲portal_service_robot_errorservice,portal_service_robot_changeservice witch包含服務的詳細信息。我希望我已經設法解釋這個部分夠好了!PHP面向對象編程多個查詢
這就是我想要做的。當用戶搜索機器人時,所有錯誤和所有服務都應按照按日期排序的列表結束。
示例: 用戶搜索機器人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;
}
?>
這裏很難給出建議,因爲我們不知道太多關於plentyfull讀了你在這裏使用的變量....究竟失敗了什麼?如果您總是得到最後一種情況的結果,請檢查您的查詢是否存在'$ s' ... else調試您的'Error'構造函數並檢查哪些值插入哪個參數 – cypherabe
[**請勿使用'新代碼中的mysql_ *函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – DaveRandom