我正在创建一个Web应用程序,用于显示数据库中包含的数据。 我编写了代码,并且该应用程序正常运行,至少具有基本功能。 我已经在考虑未来,这就是为什么我寻求您的帮助。 如果要更改数据库列的名称或添加一些新列,如果我希望它们显示在Web应用程序中,则必须修改代码的每个页面。 因此,我想问你是否可以在文本文件中写入要导入的列名,然后调用该文件来定义应在网络上显示哪些数据库的列。 我将为您附上我现在编写的代码,以便您可以更好地理解我要更改的部分(这是“ 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>
  |
<A HREF="ricerca_paziente.php" class="w2-bar-item w2-button">RICERCA PER PAZIENTE</A>
  |
<A HREF="ricerca_gene.php" class="w2-bar-item w2-button">RICERCA PER GENE</A>
  |
<A HREF="ricerca_var.php" class="w2-bar-item w2-button">RICERCA PER VARIANTE</A>
  |
<A HREF="home.php" class="w2-bar-item w2-button">HOME</A>
<P> </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>
答案 0 :(得分:-1)
使用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
,并且您没有事先知道会发生这种情况的知识。
第三个问题
您不可能以任何方式预见到它,因此您绝不可能尽早编写所有所需的额外代码。 您仍然必须手动执行所有操作。
以上所有示例均显示,即使您添加了用于控制执行逻辑的代码,通常也无法预测结构可能会发生的变化。
所有额外的代码都失去了它的价值,因为您做了未曾预见的更改,除了重写原始逻辑之外,您还必须现在重新编写整个代码以获取额外的逻辑。
结合以上所有内容,开发代码会带来风险,如果发生重大结构更改,则必须重新编写代码。
我希望它能提供一些信息。