2015-01-29 3 views
1

Мне нужно объединить данные проверки вместе в цикле, но с ошибками лица. Одиночная контрольная информация в порядке (см. Следующие установочные коды).Объединить «контрольную информацию (ы)» в петле php

Во-первых: это проверяет различные проверки информации:

  1. $ checkGeneral
  2. $ checkProduct

    foreach($resultCatAdd as &$value) { 
        if($value == "General Information") { 
         $checkGeneral = true; 
        } elseif ($value == "Product Information") { 
         $checkProduct = true; 
        } 
    } 
    

Здесь я называю основной SQL, который я должен буду выполнить:

$SQL = "SELECT * 
     FROM einv_asset 
     WHERE einv_asset_stockrm = '" . $code . "'; 
"; 

Это кодирование, чтобы проверить, если информация является истинной или ложной (прямо на другую функцию) и выполняет функцию добавить

$get_einv_asset_stockrm_SQL = base_executeSQL($SQL); 
    while($General_row = base_fetch_array($get_einv_asset_stockrm_SQL)) 

    if (base_num_rows($get_einv_asset_stockrm_SQL)!= 0) 
    { 

     // General Information category 
     if ($checkGeneral == true) { 

      if(einv_editStockrm2($General_row['einv_asset_code'],"General")) 
      { 
       $addGeneralSQL="INSERT INTO einv_general_information (einv_ginfo_status,einv_ginfo_remark,einv_ginfo_aid) 
        VALUES ('" . $status . "','" . base_addSlashSQL($remark) . "','" . $General_row['einv_asset_code'] . "')"; 

       //echo $getGeneralSQL; 

       //Check and execute query 
       if(!base_executeSQL($addGeneralSQL)) { 
        $continue = false; 
        echo $addGeneralSQL; 
       }else { $continue = true; } 
      } 
     } 

Это будет приводить к второй функции при регистрации информация является ложной

function2 :

if($category == "General") 
    { 
     $generalSQL = "SELECT * FROM einv_general_information WHERE einv_ginfo_aid = '" . $assetcode . "') "; 
     $get_einv_asset_stockrm_SQL = base_executeSQL($generalSQL); 
     $total = base_num_rows($get_einv_asset_stockrm_SQL); 
     if ($total!= 0) 
     { 
      return true; 
     } 
     elseif($total== 0) 
     { 
      return false; 
     } 
    } 

коды выше работает нормально, но есть ошибки, когда я пытаюсь включить в $checkProduct вместе с $checkGeneral, как указано выше

(рассмотрим все аналогично, за исключением того общего является изменение в продукта)

Вот как я добавил:

$get_einv_asset_stockrm_SQL = base_executeSQL($SQL); 
    while($General_row = base_fetch_array($get_einv_asset_stockrm_SQL)) 

    if (base_num_rows($get_einv_asset_stockrm_SQL)!= 0) 
    { 

     // General Information category 
     if ($checkGeneral == true) { 

      if(einv_editStockrm2($General_row['einv_asset_code'],"General")) 
      { 
       $addGeneralSQL="INSERT INTO einv_general_information (einv_ginfo_status,einv_ginfo_remark,einv_ginfo_aid) 
        VALUES ('" . $status . "','" . base_addSlashSQL($remark) . "','" . $General_row['einv_asset_code'] . "')"; 

       //echo $getGeneralSQL; 

       //Check and execute query 
       if(!base_executeSQL($addGeneralSQL)) { 
        $continue = false; 
        echo $addGeneralSQL; 
       }else { $continue = true; } 
      } 
     } 
     $get_einv_asset_stockrm_SQL = base_executeSQL($SQL); 
     while($Product_row = base_fetch_array($get_einv_asset_stockrm_SQL)) 
     if (base_num_rows($get_einv_asset_stockrm_SQL)!= 0) 
     if ($checkProduct == true) { 

      if(einv_editStockrm2($Product_row['einv_asset_code'],"Product")) 
      { 
       $addProductSQL="INSERT INTO einv_product_information (einv_pinfo_pn,einv_pinfo_serial,einv_pinfo_desc,einv_pinfo_itemcat,einv_pinfo_aid) 
     VALUES ('" . $partno . "','" . $serial . "','" . base_addSlashSQL($desc) . "','" . $itemcatID . "','" . $Product_row['einv_asset_code'] . "')"; 

      if(!base_executeSQL($addProductSQL)){ 
       $continue = false; 
       echo $addProductSQL; 
      }else { $continue = true; } 
      } 
     } 

И в функции 2:

if($category == "General") 
    { 
     $generalSQL = "SELECT * FROM einv_general_information WHERE einv_ginfo_aid = '" . $assetcode . "') "; 
     $get_einv_asset_stockrm_SQL = base_executeSQL($generalSQL); 
     $total = base_num_rows($get_einv_asset_stockrm_SQL); 
     if ($total!= 0) 
     { 
      return true; 
     } 
     elseif($total== 0) 
     { 
      return false; 
     } 
    } 
    if($category == "Product") 
    { 
     $productSQL ="SELECT * FROM einv_product_information WHERE einv_pinfo_aid = '" . $assetcode . "') "; 
     $get_einv_asset_stockrm_SQL = base_executeSQL($productSQL); 
     $total = base_num_rows($get_einv_asset_stockrm_SQL); 
     if ($total!= 0) 
     { 
      return true; 
     } 
     elseif($total== 0) 
     { 
      return false; 
     } 
    } 

Как изменить мои коды, чтобы эти две проверки работали?

ответ

1

Я не полностью согласен с вашими объяснениями. Тем не менее, я думаю, у меня есть причина ответить.

Шаги:

  1. Создание Switch Case, а не условия if-else, чтобы проверить условия верно.
  2. Выполнение функции в соответствии с вашими потребностями.

Я думаю, простое и лучшее решение этого вопроса начинается с корпуса коммутатора.

+0

Хм хорошо проверит это :) – user3872752

Смежные вопросы