我從多個表中調用信息以給出結果作爲模板中的變量。模板函數並不是所有相關的,但獲得數組和計數正確的是我似乎正在努力解決的問題。如果有人可以請檢查代碼,我肯定錯過了一些東西。多個數組加入
的$ brandFieldArray tableFields包含tableB的字段的信息。例如,如果tableB有一個名爲images的字段,tableB中的字段將包含圖像的路徑,但tableFields將在字段中保存名稱「image」以及字段類型,長度,寬度,質量,可見等。的形象。
我可以很容易地創建域,但沒有一個數組,但該系統可以創建需要被添加到陣列中,而不必每次都編輯代碼字段。
所以我需要調用從tableFields領域和tableB的內容。 tableItems的$結果是爲了確保我從tableB獲取正確的內容,以保存tableItems中的正確項目。
你能幫我修復這段代碼嗎?
<?php
switch ($requiredVar) {
case "brand":
$brandFieldsArray = $dbA->query("select * from tableFields where type='X' and visible=1");
$result = $dbA->query("select bID from tableItems where iID = $x");
if ($dbA->count($result) != null) {
$thisrecord = $dbA->fetch($result);
$bID = $thisrecord["bID"];
}
else {
$bID = null;
}
$theBrandsArray = $dbA->query("select * from tableB where bID=$bID");
$bcCount = count($theBrandsArray);
$brandContentArray = null;
foreach ((array) $theBrandsArray as $brandContent) {
$allBrandFields = "";
if (is_array($brandFieldsArray)) {
$cc = count($brandFieldsArray);
foreach ($brandFieldsArray as $brField) {
$thisBrandField = $brField;
switch ($thisBrandField["fieldtype"]) {
case "TEXT":
case "TEXTAREA":
case "IMAGE":
if ($thisBrandField["fieldtype"] == "IMAGE") {
if ($brandContent["brandfield".$brField["fieldname"]] == "") {
$thisBrandField["content"] = $brfield["defaultimage"];
}
else {
$thisBrandField["content"] = $brandContent["brandfield".$brField["fieldname"]];
}
$thisField = generateImageVariables($brField["x"],$brField["y"]);
$thisBrandField["style"] = $thisField["style"];
$thisBrandField["stylefull"] = $thisField["stylefull"];
}
else {
$brandContent["brandfield".$brField["fieldname"]] = findCorrectLanguage($brandContent,"brandfield".$brField["fieldname"]);
if (retrieveOption("convertToBR") == 1 && retrieveOption("WYSIWYGEnabled") == 0) {
$thisBrandField["content"] = str_replace("\r\n","<br/>",$brandContent["brandfield".$brField["fieldname"]]);
}
else {
$thisBrandField["content"] = $brandContent["brandfield".$brField["fieldname"]];
}
}
break;
}
$brandContent[$brField["fieldname"]] = @$thisBrandField;
}
if (is_array($allBrandFields)) {
$brandContent["brandfields"] = $allBrandFields;
}
else {
$brandContent["brandfields"] = null;
}
}
$brandContentArray[] = $brandContent;
}
return (count($brandContentArray) == 1 ? $brandContentArray[0] : $brandContentArray);
}
$tpl->addVariable("brand",$brandContentArray);
break;
?>
請解釋'$ dbA-> retrieveAllRecordsFromQuery()'。我不熟悉那個電話。我自己使用'mysqli'。它使用'$ query_result = $ db-> query()'和'if($ query_result-> num_rows> 0)'。 – PHPglue 2014-09-19 02:05:33
@PHPglue老實說,我無法解釋它,因爲我從系統中提取類似的查詢並重新使用它。做這件事情需要什麼,對我來說沒問題。 mysqli查詢很好。 – user3814045 2014-09-19 03:04:47
您可以在單獨的安全'.php'頁面上添加'function db(){return new mysqli('host','username','password','database_name');}'。我們將它稱爲'connect.php'。接下來,在你將使用的頁面上包含'folder/connect.php';'。然後就像'$ db = db(); $ sel = $ db-> query('SELECT * FROM table_name WHERE column_name = value'); if($ sel-> num_rows> 0){while($ row = $ sel-> fetch_object()){echo「