2014-10-09 2 views
0

내 데이터베이스에서 데이터를 가져 오는 데 필요한 일부 PHP - PDO를 사용하고 있습니다.하지만 내 의견에는 특별한 것이 없지만 디스플레이 데이터는 3 가지 테이블에서 가져와야합니다. 이 같은 :PHP에서 PDO 문제의 PDO

public function fetchByVinAxnmrss($con) { 
    $success = false; 
    //$this->vin = "KMHLC81UACU021096"; 
    if($this->vin){ 
    try{ 
     $sql = "SELECT * FROM axnmrs_cases WHERE vin = :vin LIMIT 30"; 
     $stmt = $con->prepare($sql); 
     $stmt->bindValue("vin", $this->vin, PDO::PARAM_STR); 
     $stmt->execute(); 
      while ($row = $stmt->fetch()){ 
       echo"<tr>"; 
       echo "<td class='number'>".$row['claimnumber']."</td>"; 
       // Remove time from date 
       $date = substr($row['date_created'], 0, -9); 
       echo "<td class='city'>".$date."</td>"; 
       //echo "<td class='street'>Axnmrs</td>"; 
       // Which Insurer work on it? 
       switch ($row['insurer_memberid']) { 
        case "MM-O-37C4CD31-1": 
         echo "<td class='case'>Allianz</td>"; 
         break; 
        case "MM-O-A44710BB-1": 
         echo "<td class='case'>Allianz</td>"; 
         break; 
        case "MM-O-49A8CA6F-1": 
         echo "<td class='case'>Allianz</td>"; 
         break; 
        case "MM-O-C729378F": 
         echo "<td class='case'>AXA</td>"; 
         break; 
        case "MM-O-D2C1CC5": 
         echo "<td class='case'>AXA</td>"; 
         break; 
        case "MM-O-FADFB9B5": 
         echo "<td class='case'>AXA</td>"; 
         break; 
        case "MM-O-3EC11A4B": 
         echo "<td class='case'>AXA</td>"; 
         break; 
        case "MM-O-2F2D436F": 
         echo "<td class='case'>AXA</td>"; 
         break; 
        case "MM-O-C81D91E1": 
         echo "<td class='case'>Česká podnikatelská pojišťovna</td>"; 
         break; 
        case "MM-O-80E4AE2F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Breclav</td>"; 
         break; 
        case "MM-O-F4C8228F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Ceska Lipa</td>"; 
         break; 
        case "MM-O-8B7BBE0F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Ceske Budejovice</td>"; 
         break; 
        case "MM-O-20ACAE0F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Havlikuv brod</td>"; 
         break; 
        case "MM-O-9DAC6D6F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Hradec Kralove</td>"; 
         break; 
        case "MM-O-AA1D5C5B": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Jihlava</td>"; 
         break; 
        case "MM-O-98495A0F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Karlovy Vary</td>"; 
         break; 
        case "MM-O-A028272F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Kladno</td>"; 
         break; 
        case "MM-O-2B1B1B45": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Katlovy</td>"; 
         break; 
        case "MM-O-F0CFDD29": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Liberec</td>"; 
         break; 
        case "MM-O-F3D7CEDF": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Marianske lazne</td>"; 
         break; 
        case "MM-O-3EC11A4B": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Most</td>"; 
         break; 
        case "MM-O-55DF5BCD": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Olomouc</td>"; 
         break; 
        case "MM-O-E5BE065D": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Ostrava</td>"; 
         break; 
        case "MM-O-C632870B": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Plzen</td>"; 
         break; 
        case "MM-O-8B7CCFF9": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Praha</td>"; 
         break; 
        case "MM-O-FA9D9AAF": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Strakonice</td>"; 
         break; 
        case "MM-O-3E1A67B9": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Tabor</td>"; 
         break; 
        case "MM-O-CF600685": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Teplice</td>"; 
         break; 
        case "MM-O-55DCBE4F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Usti nad Labem</td>"; 
         break; 
        case "MM-O-5BDB486F": 
         echo "<td class='case'>Česká podnikatelská pojišťovna Zlin</td>"; 
         break; 
        case "MM-O-56FBC8EB": 
         echo "<td class='case'>Česká pojišťovna - Slovensko</td>"; 
         break; 
        case "MM-O-B5FD6799": 
         echo "<td class='case'>Česká pojišťovna - Slovensko</td>"; 
         break; 
        case "MM-O-72C6FD4F": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-B09CAD4F": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-8484AD31-1": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-5D6CBE83": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-4850B095": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-49A8CA6F-2": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-869DC2EF": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-E390390F": 
         echo "<td class='case'>Ceská stavební s.r.o.</td>"; 
         break; 
        case "MM-O-7EB15A0F": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-679147C3": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-8484AD31-2": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-8484AD31": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-78EFD7AF": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-4850B095-1": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-F79C266F": 
         echo "<td class='case'>Česká pojišťovna</td>"; 
         break; 
        case "MM-O-DB6C8E89": 
         echo "<td class='case'>Česká podnikatelská pojišťovna</td>"; 
         break; 
        case "MM-O-FB6CEE51": 
         echo "<td class='case'>CSAD Frydek Mistek</td>"; 
         break; 
        case "MM-O-4344884F": 
         echo "<td class='case'>CSAD Turnov</td>"; 
         break; 
        case "MM-O-171245CF": 
         echo "<td class='case'>CSAD Praha</td>"; 
         break; 
        case "MM-O-8A8C017E": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-41DAE04F": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-7F5A43CF": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-BF07BC5F": 
         echo "<td class='case'>ČSOB Pojišťovna Brno</td>"; 
         break; 
        case "MM-O-7EB15A0F": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-2928FDCF": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-1C8C77EF": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "MM-O-F2E015AB": 
         echo "<td class='case'>ČSOB Pojišťovna</td>"; 
         break; 
        case "Member_C29D87ED-4B6B-3617": 
         echo "<td class='case'>Experta</td>"; 
         break; 
        case "MM-O-DF0368E1": 
         echo "<td class='case'>Experta Assistance</td>"; 
         break; 
        case "MM-O-45A3932F": 
         echo "<td class='case'>Generali Poistovna</td>"; 
         break; 
        case "MM-O-37C4CD31-2": 
         echo "<td class='case'>Generali</td>"; 
         break; 
        case "MM-O-6972ED53": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-5D6CBE83-1": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-8AB24F6D-1": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-49A8CA6F-4": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-22AC8AF1": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-22AC8AF1-1": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-966DD32F": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-B51C9EF": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-FA6792AF": 
         echo "<td class='case'>Global Expert</td>"; 
         break; 
        case "MM-O-B6239C27": 
         echo "<td class='case'>Kooperativa</td>"; 
         break;  
        case "MM-O-190AEE2F": 
         echo "<td class='case'>Kooperativa SR</td>"; 
         break; 
        case "MM-O-A57BD32F": 
         echo "<td class='case'>Poistovna</td>"; 
         break; 
        case "MM-O-268FF80F": 
         echo "<td class='case'>Poistovna s.r.o</td>"; 
         break; 
        case "MM-O-69DD8991": 
         echo "<td class='case'>Policie CR</td>"; 
         break; 
        case "MM-O-DE75662B": 
         echo "<td class='case'>Uniqa</td>"; 
         break; 
        case "MM-O-5B57274F": 
         echo "<td class='case'>Uniqa pojišťovna</td>"; 
         break; 
        case "MM-O-4850B095-2": 
         echo "<td class='case'>Uniqa pojišťovna</td>"; 
         break; 
        case "MM-O-5748D9EF": 
         echo "<td class='case'>Uniqa pojišťovna</td>"; 
         break; 
        case "MM-O-D49AADF1": 
         echo "<td class='case'>Uniqa pojišťovna</td>"; 
         break; 
        case "MM-O-2ED3E46F": 
         echo "<td class='case'>Uniqa pojišťovna</td>"; 
         break; 
        case "MM-O-C7592B8F": 
         echo "<td class='case'>Uniqa pojišťovna SK</td>"; 
         break; 
        case "MM-O-616E3D01": 
         echo "<td class='case'>Wüstenrot</td>"; 
         break; 
        case "MM-O-8ADCAA4B": 
         echo "<td class='case'>Wüstenrot</td>"; 
         break; 
        case "MM-O-BDD15299": 
         echo "<td class='case'>Wüstenrot</td>"; 
         break; 
        case "MM-O-22401A8F": 
         echo "<td class='case'>Wüstenrot</td>"; 
         break; 
        case "MM-O-5568720F": 
         echo "<td class='case'>Slavia pojišťovna</td>"; 
         break; 
        case "MM-O-26D1C0EF": 
         echo "<td class='case'>Servisní pojišťovna</td>"; 
         break; 
        case "MM-O-D45A6DEF": 
         echo "<td class='case'>Triglav Pojišťovna</td>"; 
         break; 
        case "MM-O-26D1C0EF": 
         echo "<td class='case'>Servisní pojišťovna</td>"; 
         break;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
        default: 
         echo "<td class='case'>Servis</td>";                                                                                                                                                                                                                                                       
       } 

       echo "<td class='country'>".$row['country']."</td>"; 
       echo "<td class='action'><button class='btn btn-flat btn-view'><span class='glyphicon glyphicon-eye-open' title='Show Detail'></span></button></td>";      
       echo"</tr>"; 

       echo"<tr class='detail'>"; 
       echo"<td colspan='6'>"; 
        echo "<div class='case-detail row'>"; 
        echo "<div class='col-xs-6 col-md-3'>";  
         echo"<dl>"; 
         // What parts are used 
         echo "<dt>Použité náhradní díly</dt>"; 
         if ($row['part_supplier']=1){ 
         echo "<dd>Originální</dd>";} 
         else{ 
         echo "<dd>Alternativní</dd>";} 

         echo "<dt>Datum vytvoření případu</dt>"; 
         echo "<dd>".$row['date_created']."</dd>"; 

         echo "<dt>SPZ</dt>"; 
         echo "<dd>".$row['platenumber']."</dd>"; 

         echo "<dt>Totální škoda</dt>"; 
         if (empty($row['totalloss'])){ 
         echo $row['totalloss'];  
         echo "<dd>Ne</dd>";} 
         else{ 
         echo "<dd>Ano</dd>";}        

         echo "<dt>VIN</dt>"; 
         echo "<dd>".$row['vin']."</dd>"; 

         $this->manufacturer_code = $row['lastcalc_manufacturer_code']; 
         $this->main_type = $row['lastcalc_model_code']; 
         $this->subtype_code = $row['lastcalc_submodel_code']; 

         echo "<dt>Druh vozidla</dt>"; 
         echo "<dd>".$this->getCarType()."</dd>";       

         echo"</dl>"; 
        echo"</div>"; 
        // DRUHY STLPEC 
        echo"<div class='col-xs-6 col-md-3'>"; 
         echo"<dl>"; 

         echo "<dt>Identifikace vozidla pomocí AudaVIN</dt>"; 
         if (isset($row['audavin_trigged'])){ 
         echo "<dd>Ano</dd>";} 
         else{ 
         echo "<dd>Ne</dd>";}       
         // DATUM NEHODY 
         echo "<dt>Datum nehody</dt>"; 
         if ($row['accident_date'] == "0000-00-00 00:00:00"){ 
          echo "<dd>Neni k dispozici</dd>"; 
         } 
         else{ 
         echo "<dd>".$row['accident_date']."</dd>"; 
         } 
         // DATUM REGISTRACE VOZIDLA 
         echo "<dt>Datum registrace vozidla</dt>"; 
         if ($row['registration_date'] == "0000-00-00 00:00:00"){ 
          echo "<dd>Neni k dispozici</dd>"; 
         } 
         else{ 
         echo "<dd>".substr($row['registration_date'], 0, 10)."</dd>"; 
         } 
        echo"</dl>"; 
        echo"</div>"; 

       $this->case = $row['case_id']; 
             /* 
       try{ 
        $sql = "SELECT * FROM axnmrs_calculations WHERE case_id = :case LIMIT 100"; 
        $stmt = $con->prepare($sql); 
        $stmt->bindValue("case", $this->case, PDO::PARAM_STR); 
        $stmt->execute();     
        while ($row = $stmt->fetch()){ 
         $this->calculationid = $row['calculation_id']; 

         echo "<dt>Cena náhradních dílů</dt>"; 
         echo "<dd>".$row['spareparts']."</dd>"; 

         echo "<dt>Celkové náklady</dt>"; 
         echo "<dd>".$row['totalcosts']."</dd>";       
         echo"</dl>"; 
        echo"</div>"; 

        echo"<div class='col-xs-6 col-md-3'>"; 
         echo"<dl>"; 
         echo "<dt>Celkový počet hodin práce</dt>"; 
         echo "<dd>".$row['laborhours']."</dd>"; 

         echo "<dt>Datum vytvoření kalkulace</dt>"; 
         echo "<dd>".substr($row['calculationdate'], 0, 17)."</dd>";  // ODSTRANIT 0000 

         echo "<dt>Lakovací materiál</dt>"; 
         echo "<dd>".$row['paintmaterial']."</dd>"; 

         echo "<dt>Náklady na práci</dt>"; 
         echo "<dd>".$row['laborcosts']."</dd>"; 

         echo "<dt>Náklady na lakování</dt>"; 
         echo "<dd>".$row['paintlabor']."</dd>";              

         echo "<dt>Měna</dt>"; 
         echo "<dd>".$row['currency']."</dd>"; 
         echo"</dl>"; 
        echo"</div>";              
         } 
         }catch(PDOExeption $e){ 
         echo $e->getMessage(); 
         echo $con->errorInfo(); 
         } 
        */ 
        echo"<div class='col-xs-6 col-md-3'>"; 
         echo"<dl>"; 
         echo "<dt>Seznam použitých náhradních dílů </dt>"; 
        //$this->calculationid = $row['calculation_id']; 
        try{ 
        $sql = "SELECT * FROM axnmrs_positions WHERE calculation_id = :calculationid LIMIT 60"; 
        $stmt = $con->prepare($sql); 
        $stmt->bindValue("calculationid", $this->calculationid, PDO::PARAM_STR); 
        $stmt->execute(); 
        while ($row = $stmt->fetch()){ 
        echo "<dd>".$row['text']."</dd>"; 
         } 
        }catch(PDOExeption $e){ 
        echo $e->getMessage(); 
        echo $con->errorInfo(); 
         } 
         echo"</dl>"; 
        echo"</div>"; 

      //return $success; 
      */ 
      echo"</div>"; 
      echo "</td>" ; 
      echo "</tr>"; 
      } 
      }catch(PDOExeption $e){ 
      echo $e->getMessage(); 
      echo $con->errorInfo(); 
      } 
      return $success; 
     }    
    } 

난 당신이 그것에게 그것의 단지 같은 일을 항상 찾을 확신하지만 문제는 내가 한 결과를 얻을, 그것은 내가 데이터베이스에 보면 결과를 더 표시됩니다 사실을 견디는. 그래서 내가 단계별로 확인하고 테이블에서 다른 연결을 주석 경우 잘 작동합니다 (그냥 dispaly 결과 ofc 그들) 그래서 내가 여기이 문제를 해결할 수있는 사람이 누구인지 알아? 아니면 조언 해줘? 이것은 PDO와 OOP가있는 첫 프로젝트입니다. (

+1

보험사 이름을 케이스 문에 하드 코딩하지 말고 왜 데이터베이스에 저장하지 않는지 생각하십시오. ? –

+0

게시했지만 lolka_bolka가 먼저 게시했습니다. 내가 찾던 첫 번째 오류였습니다. 변수 이름을 변경해보십시오. –

+0

데이터 검색과 관련하여 디스플레이 관심사를 구분하는 것이 좋습니다. 한 가지 방법으로. –

답변

2

이 스위치 케이스는 정말 필요한가요? 코드는 들여 쓰지 않아 멋지게 읽을 수 있습니다. 하지만 i 문제는 루프에 $ stmt $ 행 변수를 다시 작성한다는 것입니다. 루프에 다른 이름을 사용하십시오.

+0

당신의 조언을 따르고 stmt의 이름을 바꿉니다. 이제는 스크립트 시간이 초과되었습니다.하지만 6GB 큰 데이터베이스를로드하지만 아직 시간 제한을하지 못하고 5 초 안에 결과를 얻지 못하면 확실하지 않습니다. 어디에서 문제가 될 수 있습니까? –

+0

개발자 환경을 만들고 데이터베이스에서 데이터를 청크하자. 스크립트를 테스트하고 모든 것이 정상이면 코드가 좋다. – vaso123