Способы импорта данных из баз данных - PullRequest
0 голосов
/ 21 ноября 2018

Я создаю веб-приложение, которое отображает данные, содержащиеся в базе данных.Я написал код, и приложение работает, по крайней мере, с основными функциями.Я уже думаю о будущем, и поэтому я прошу вашей помощи.В случае, если я изменю имя столбцов базы данных или, возможно, добавлю несколько новых столбцов, мне придется изменить каждую страницу моего кода, если я хочу, чтобы они отображались в моем веб-приложении.По этой причине я хотел бы спросить вас, можно ли написать имя столбца, который я хочу импортировать, в текстовом файле, а затем вызвать этот файл, чтобы определить, какие столбцы базы данных должны отображаться в сети.Я прилагаю вам код, который я сейчас пишу, чтобы вы могли лучше понять ту часть, которую я хочу изменить (которая является частью цикла while).

<html>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
</head>

<body>
<div id="holder">
<h1><?php echo "<font face=verdana size=30 color=#036>CAMBIO AMINOACIDICO</font>";?></h1></div>
<br>


<div id="sidebar" style="width:90%" class="sidebar">
  <A HREF="ricerca_var_AA.php" class="w2-bar-item w2-button">NUOVA RICERCA</A>
  &nbsp;&nbsp;&nbsp | &nbsp;&nbsp;&nbsp; 
  <A HREF="ricerca_paziente.php" class="w2-bar-item w2-button">RICERCA PER PAZIENTE</A>
  &nbsp;&nbsp;&nbsp | &nbsp;&nbsp;&nbsp;
  <A HREF="ricerca_gene.php" class="w2-bar-item w2-button">RICERCA PER GENE</A>
  &nbsp;&nbsp;&nbsp | &nbsp;&nbsp;&nbsp;
  <A HREF="ricerca_var.php" class="w2-bar-item w2-button">RICERCA PER VARIANTE</A>
  &nbsp;&nbsp;&nbsp | &nbsp;&nbsp;&nbsp;
  <A HREF="home.php" class="w2-bar-item w2-button">HOME</A>
  <P>&nbsp;</P>
</div>

<div class="container">
<?php
$conn= mysql_connect("loc", "db", "pss");
if (!$conn)
{
     die("Connessione non riuscita <br>" . mysql_error());
//}else{
    //echo "Connessione al database stabilita con successo<br><br>";
}

mysql_select_db("variant_db", $conn);

if(isset($_POST["vai"])){
   $aa=$_POST["aa"];
}
echo "Verranno visualizzate le varianti per il seguente cambio di aminoacido:'<b>$aa</b>'.";?>
<br /><br />

<?php
     $sql="SELECT A.AAchange, V.dnaCode, V.Chr, A.Start, A.End, A.Alt, A.Ref, V.zygosity, A.gene FROM annotazioni as A JOIN variante as V ON V.Start = A.Start AND V.Alt=A.Alt AND V.Ref=A.Ref WHERE A.AAchange='$aa'";
     $result_dna = mysql_query($sql, $conn) or die(mysql_error());

     if(mysql_num_rows($result_dna) == 0)
    {
          echo "<br>La ricerca non ha prodotto alcun risultato!<br>";
          echo"<b>Effettuare una nuova ricerca.</b><br><br>";

    }else
    {?>
        <div class="row">
            <div class="col-mid-8 col-mid-offset-2">
                 <table id="table_var" "width=100%" class="table table-striped table-bordered table-hover">
                     <thead>
                          <tr>
                              <th>AAchange</th>
                              <th>dnaCode</th>
                              <th>Chr</th>
                              <th>Start</th>
                              <th>End</th>
                              <th>Alt</th>
                              <th>Ref</th>
                              <th>Zigosity</th>
                              <th>Gene</th>                    
                        </tr>
                    </thead>
                    <tbody>
                    <?PHP
                         while ($record_dna=mysql_fetch_array($result_dna)){
                             echo '
                                <tr>
                                  <td>'.$record_dna['AAchange'].'</td>
                                  <td>'.$record_dna['dnaCode'].'</td>
                                  <td>'.$record_dna['Chr'].'</td>
                                  <td>'.$record_dna['Start'].'</td>
                                  <td>'.$record_dna['End'].'</td>
                                  <td>'.$record_dna['Alt'].'</td>
                                  <td>'.$record_dna['Ref'].'</td>
                                  <td>'.$record_dna['zygosity'].'</td>
                                  <td>'.$record_dna['gene'].'</td>
                                </tr>
                            ';
                         }
};?>
                    </tbody>
               </table>
            </div>
       </div>
  </div>


         <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous">         </script>
         <script type="text/javascript" src="js/ddtf.js"></script>
         <script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
         <script type="text/javascript" >
         $('#table_var').ddTableFilter();
         </script>


</body>
</html>

1 Ответ

0 голосов
/ 21 ноября 2018

Хранение имен таблиц в txt или xml на самом деле ничего не решает и приносит слишком много дополнительного кода.

Например, скажем, у вас есть таблица Z с столбцами A, B C.И у вас есть кусок кода, который выглядит как SELECT A, B, C FROM Z.И после этого у вас есть некоторая логика php.

ПЕРВЫЙ ПРИМЕР

Вы решили, что вам нужно добавить столбец D в вашу таблицу Z.

ПЕРВЫЙ ВОПРОС

Вам нужно будет выбрать данные из столбца D?

ПЕРВАЯ ПРОБЛЕМА

Есливам нужно выбрать и обработать данные из столбца D, и, возможно, вам будет недостаточно изменить SELECT A, B, C FROM Z на SELECT A, B, C, D FROM Z, потому что у вас не было никакой php-логики, которая обрабатывала бы D до этого, и вы должныдобавьте его сейчас. - Много дополнительного кода управления логикой выполнения.

ВТОРОЙ ПРИМЕР

Вы решили, что вам не нужен столбец данных C в вашей таблице Z, и вы хотите удалить весь столбец.

SECOCD ПРОБЛЕМА

Здесь изменение SELECT A, B, C FROM Z на SELECT A, B FROM Z недостаточно 100% .

У вас был какой-то phpкод, который обрабатывает данные из столбца C, но теперь у вас нет столбца C, и код должен быть удален.Также много дополнительного кода для управления логикой выполнения.

ТРЕТИЙ ПРИМЕР

Ваш босс неожиданно сказал вам добавить столбец N, и у вас не было предварительного знания, что это будетбывает.

ТРЕТЬЯ ПРОБЛЕМА

Вы не могли этого предвидеть каким-либо образом, поэтому никоим образом не могли сделать весь необходимый дополнительный код раньше. Вам все равно придется делать все вручную.

Все приведенные выше примеры показывают, что вы, даже если вы добавляете код для управления логикой выполнения, в общем, вы не можете предсказать, что изменится.структура может получить.

Весь дополнительный код теряет свою ценность, потому что вы внесли изменение, которое вы не предвидели, и, кроме переписывания оригинальной логики, вы также должны переписать весь код для дополнительной логикисейчас.

Объединяя все вышеперечисленное, разработка кода сопряжена с риском переписать его, если и когда произойдут некоторые серьезные структурные изменения.

Я надеюсь, что это было несколько информативно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...