php - PHP中的PDO中的PDO问题

标签 php mysql pdo

我正在使用一些简单的 PHP - PDO 从我的数据库中获取数据,在我看来这没什么特别的,但问题是为了显示数据,我需要从 3 个不同的表中获取它们,所以我做了这样的事情:

  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;
         }             
     }  

我确信您发现它一直都是同一件事,但问题是我只得到一个结果,尽管如果我查看数据库它应该显示更多结果。所以我尝试一步步检查它,发现如果我注释掉表上的其他连接,它工作正常(只是不显示它们的结果),那么这里有人可以帮助我解决这个问题吗?或者给我建议?这是我第一个使用 PDO 和 OOP 的项目,所以有点困惑,对此表示抱歉:(

最佳答案

我们真的需要整个开关盒吗?而且代码没有很好的缩进,所以很难阅读。 但我认为,问题在于,您在循环中重写了 $stmt 和 $row 变量。在循环中为它们使用另一个名称。

关于php - PHP中的PDO中的PDO问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281665/

相关文章:

mysql - 如何最好地查询 "all Y for each X that has a matching Y"的多对多关系

php - 在 WordPress 帖子中指定自定义规范 URL

php - 具有 "template"功能和 JQuery 和 PHP 视觉帮助的 Dreamweaver 的替代品

javascript - 检索文本区域框中每行的值

MySql 只更新其中一条重复记录

php - 来自数据库列的随机值,但在 Laravel 中仅出现一次

使用 Laravel 通过 SSL 连接 MySQL

php - 需要 PHP PDO 的一些解释......!

javascript - PHP laravel 使用 jQuery 解析数据或将它们组合成单个数组

php pdo用数据库中的数组填充表格