繁体   English   中英

重写php / sql代码以使其更加简化

[英]rewrite php/sql code to make it more streamlined

我真的不喜欢看这段代码,它对我来说很脏,需要将其压缩为更严格的代码。 我觉得这可以在单个查询中完成,并使查询在while循环内而不是之前进行...

但是,每次我尝试将SELECT放入其中时都会失败。 我该如何浓缩呢? 这是输入表单的数据列表:

<datalist id="keys">
<?php
  $tile1=$db->query("SELECT * FROM YearMakeModel GROUP BY Make1, Model1");
  while($storeModel=mysqli_fetch_object($tile1))
    { echo '<option value="'.$storeModel->Model1.'">'; }
  $tile2=$db->query("SELECT * FROM YearMakeModel GROUP BY Make1");
  while($storeMake=mysqli_fetch_object($tile2))
    { echo '<option value="'.$storeMake->Make1.'">'; } 
  $tile3=$db->query("SELECT * FROM YearMakeModel GROUP BY Make1, Model1");
  while($storeMakeModel=mysqli_fetch_object($tile3))
    { echo '<option value="'.$storeMakeModel->Make1.' '.$storeMakeModel->Model1.'">'; }
?>
</datalist>

通过执行以下操作可以获得所有结果:

  1. 获取所有数据
  2. 将它们分组在不同的字段中
  3. 将它们写在输出中

可以按照以下步骤进行:

$everything=$db->query("SELECT * FROM YearMakeModel");   


$formattedResults = [ "models" => [], "makes" => "makesAndModels" => [] ];
while ($row = mysqli_fetch_object($everything)) {
      $formattedResults["makes"][$row->Make1] = "Make label here?";       
      $formattedResults["models"][$row->Model1] = "Model label here?"; 
      $formattedResults["makesAndModels"][$row->Make1.' '.$row->Model1] = "Combined label here?"; 
}

<datalist id="keys"> 
    <?php 
    foreach ($formattedResults as $array) {
          foreach ($array as $value => $label) {
                 echo "<option value='$value'>";
          }
    } ?>          
</datalist>

我希望这是您要寻找的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM