php - Mysql和php代码跳过第一个结果
问题描述
我正在创建一个 web 应用程序来破坏数据库中包含的数据。我用 php 和 mysql 语言编写了代码。问题是当我的应用程序在表中显示查询请求的数据时,第一个结果被跳过,我无法理解为什么。此外,控制台中没有显示错误,这就是我无法解决问题的原因。
这是代码,其中有 db 连接、mysql 查询和表中输出的组织。
<html>
<body>
<div id="holder">
<h1><?php echo "<font face=verdana size=30 color=#036>SEQUENZA DI START</font>";?></h1>
</div>
<br>
<div class="container">
<?php
$conn= mysql_connect("db", "db", "ps");
if (!$conn)
{
die("Connessione non riuscita <br>" . mysql_error());
//}else{
//echo "Connessione al database stabilita con successo<br><br>";
}
mysql_select_db("var", $conn);
if(isset($_POST["vai"])){
$start=$_POST["start"];
}
echo "Verranno visualizzate le varianti per la seguente sequenza di start: '<b>$start</b>'.";?>
<br><br>
<div class="row">
<div class="col-mid-8 col-mid-offset-2">
<table id="mytable" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th><b>Codice DNA</b></th>
<th><b>Chr</b></th>
<th><b>Start</b></th>
<th><b>End</b></th>
<th><b>Alt</b></th>
<th><b>Ref</b></th>
<th><b>Zygosity</b></th>
<th><b>Coverage</b></th>
<th><b>InsertPos</b></th>
</tr>
</thead>
<tbody>
<?php
$sql="SELECT V.dnaCode, V.Chr, V.Start, V.End, V.Alt, V.Ref, V.zygosity, V.coverage, V.InsertPos FROM variante as V WHERE V.Start='" .$start. "'";
$result_start = mysql_query($sql, $conn) or die(mysql_error());
$record_start=mysql_fetch_array($result_start);
if($record_start==false)
{
echo "<br>La ricerca non ha prodotto alcun risultato con la sequenza di start inserita!<br>";
echo"<b>Effettuare una nuova ricerca.</b><br><br>";
}else
{
while ($record_start = mysql_fetch_array($result_start)) {
echo '
<tr>
<td>'.$record_start["dnaCode"].'</td>
<td>'.$record_start["Chr"].'</td>
<td>'.$record_start["Start"].'</td>
<td>'.$record_start["End"].'</td>
<td>'.$record_start["Alt"].'</td>
<td>'.$record_start["Ref"].'</td>
<td>'.$record_start["zygosity"].'</td>
<td>'.$record_start["coverage"].'</td>
<td>'.$record_start["InsertPos"].'</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" >
$('#mytable').ddTableFilter();
</script>
</body>
</html>
解决方案
大注
每次您在新代码中使用数据库
mysql_
扩展 时,都会发生这种情况 ,它已被弃用,并且已经存在多年,并且在 PHP7.0+ 中永远消失了。如果您只是学习 PHP,请花精力学习数据库扩展和准备好的语句PDO
。从这里开始mysqli
删除此行$record_avsnp150 = mysql_fetch_array($result_avsnp150);
,因为它正在从结果集中获取第一行,但您什么也没做。
$sql_avsnp150= "SELECT A.avsnp150, V.dnaCode, V.Chr, A.Start, A.End,
A.Alt, A.Ref, V.zygosity, A.gene, A.Func
FROM annotazioni as A
JOIN variante as V ON A.Start = V.Start
AND A.Alt=V.Alt
AND A.Ref=V.Ref
WHERE A.avsnp150='".$avsnp150."'";
$result_avsnp150 = mysql_query($sql_avsnp150, $conn) or die(mysql_error());;
// remove this line
//$record_avsnp150 = mysql_fetch_array($result_avsnp150);
// and change this one too
//if($record_avsnp150==false)
if($result_avsnp150 == false ) {
echo mysqli_error();
exit; // serious error so no point continuing
}
if ( mysql_num_rows($result_avsnp150) == 0) {
echo "<br>La ricerca non ha prodotto alcun risultato con l'avsnp150 inserito!<br>";
echo"<font color=#039><b>Effettuare una nuova ricerca.</b></font><br><br>";
}else{
while ($record_avsnp150 = mysql_fetch_array($result_avsnp150)) {
echo '
<tr>
<td>'.$record_avsnp150["avsnp150"].'</td>
<td>'.$record_avsnp150["dnaCode"].'</td>
<td>'.$record_avsnp150["Chr"].'</td>
<td>'.$record_avsnp150["Start"].'</td>
<td>'.$record_avsnp150["End"].'</td>
<td>'.$record_avsnp150["Alt"].'</td>
<td>'.$record_avsnp150["Ref"].'</td>
<td>'.$record_avsnp150["zygosity"].'</td>
<td>'.$record_avsnp150["gene"].'</td>
<td>'.$record_avsnp150["Func"].'</td>
</tr>
';
}
}
?>
推荐阅读
- python - Flask:导入我的数据库播种脚本时,没有正确引用 db
- laravel - 无法隐藏水平条形图vue js的x轴
- javascript - 如何在 SpeechRecognition Web Speech API 中禁用句子级自动更正
- javascript - 我如何无法在 javascript 中滚动?
- dynamics-crm - CRM 2013 Onprem:在 CRM 中登录的用户访问区域
- php - 为sql中的列设置唯一约束
- ios - 可以将 PWA 应用发布到应用商店 Swift
- python - 我们如何在不中断实时流量的情况下更新已部署的 Flask 应用程序?
- angular - 错误:无法匹配任何路由。URL 段:'admin/projects/projectssCategory/list'
- reactjs - 反应 useEffect 钩子导致无限循环