Mysql 我的一个查询在正常工作了10年后只返回一条记录——我没有更改任何代码
我的网站上有一个mysql数据库已经有10年了。我最近(5或6个月前)不得不升级到5.x版,而且没有任何问题。我的数据库使用了四个表,直到大约一周前一直运行良好。我的一个表现在只返回一条记录,即使有许多记录与查询匹配。我已经很多年没有对代码进行任何更改了。我已经研究这个问题好几个小时了,还没有找到任何答案,所以我在这里发布代码以寻求帮助。这段代码查询的是一个包含11549条记录的平面文件,每条记录包含15个字段Mysql 我的一个查询在正常工作了10年后只返回一条记录——我没有更改任何代码,mysql,arrays,while-loop,Mysql,Arrays,While Loop,我的网站上有一个mysql数据库已经有10年了。我最近(5或6个月前)不得不升级到5.x版,而且没有任何问题。我的数据库使用了四个表,直到大约一周前一直运行良好。我的一个表现在只返回一条记录,即使有许多记录与查询匹配。我已经很多年没有对代码进行任何更改了。我已经研究这个问题好几个小时了,还没有找到任何答案,所以我在这里发布代码以寻求帮助。这段代码查询的是一个包含11549条记录的平面文件,每条记录包含15个字段 <?php mysql_connect ('localhost:/tm
<?php
mysql_connect ('localhost:/tmp/mysql5.sock', 'my_user_name', 'my_password') or
die("Could not connect: " . mysql_error());
mysql_select_db (virtualc_sac);
$result = mysql_query ("select * from doublestar
where con = '$con' and sep > '$sep1' and sep < '$sep2'
group by 'name' order by '$order'");
echo ("<tr><td colspan='14' align='center'><font face='arial, helvetica' size='2'>
<b>Search Results for<br>
Constellation=$con and Separation > $sep1 arc minutes
and Separation < $sep2 arc minutes, Sorted by $order</b><br><br></td></tr>");
if (mysql_num_rows($result) == 0) {
echo "<tr><td width='10'></td>
<td width='470' colspan='14' align='left'><font face='arial, helvetica' size='2'>Sorry, no records were found. Try altering your selection criteria. Hitting the BACK button on your browser will show you your previous selection criteria.</td>";
} else {
while ($row = mysql_fetch_array($result)) {
{
echo "<tr>
<td width='80' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Name
</td>
<td width='50' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Star
</td>
<td width='50' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>RA
</td>
<td width='50' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Dec
</td>
<td width='30' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Comp
</td>
<td width='50' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Mag1
</td>
<td width='50' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Mag2
</td>
<td width='30' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Sep
</td>
<td width='30' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>PA
</td>
<td width='60' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>U2000
</td>
<td width='30' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Spec
</td>
<td width='240' align='left' valign='bottom'>
<font face='arial, helvetica' size='1'>Notes
</td>";
echo "<tr>
<td width='80' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["name"];
echo "</td>";
echo "<td width='50' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["star"];
echo "</td>";
echo "<td width='50' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["ra"];
echo "</td>";
echo "<td width='50' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["decl"];
echo "</td>";
echo "</td>";
echo "<td width='30' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["comp"];
echo "</td>";
echo "<td width='50' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["mag1"];
echo "</td>";
echo "<td width='50' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["mag2"];
echo "</td>";
echo "<td width='30' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["sep"];
echo "</td>";
echo "<td width='30' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["pa"];
echo "</td>";
echo "<td width='60' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["u2000"];
echo "</td>";
echo "<td width='30' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["spec"];
echo "</td>";
echo "<td width='240' align='left' valign='top'>
<font face='arial, helvetica' size='1'>";
echo $row["notes"];
echo "</td></tr>";
}
}
}
?>
@DuaneFrybarger我首先要确保您的数据库正常。就我个人而言,我最喜欢的工具是,使用SQL选项卡键入查询并运行它。如果所有记录都按预期显示,则数据库正常。如果没有,则运行一个简单的SELECT*..
查询以确保所有记录都在那里。如果所有这些都正常,那么您需要再次检查所有HTML。其他一些想法:
创建标题行的代码在while循环中-是否希望每个记录都有标题行
前面提到的echo$row[“decl”]后面有一个额外的
代码>
脚本中前面分配的变量是否来自$\u POST
-变量
@DuaneFrybarger我会首先确保您的数据库正常。就我个人而言,我最喜欢的工具是,使用SQL选项卡键入查询并运行它。如果所有记录都按预期显示,则数据库正常。如果没有,则运行一个简单的SELECT*..
查询以确保所有记录都在那里。如果所有这些都正常,那么您需要再次检查所有HTML。其他一些想法:
创建标题行的代码在while循环中-是否希望每个记录都有标题行
前面提到的echo$row[“decl”]后面有一个额外的
代码>
脚本中前面分配的变量是否来自$\u POST
-变量
您是否尝试过按名称分组、按$order分组、不带引号?是否检查了数据库以确保数据没有丢失或损坏?除此之外,您的表HTML似乎非常糟糕。像
(也许你的意思是
),未关闭的
标签,各种各样的问题。也许你的浏览器得到了更新,现在它没有正确显示这个HTML,除了第一列之外,它什么都省略了——这只是一个猜测。我没有尝试过使用$order(不带引号)按名称顺序分组。发布此问题后,我发现我的其他查询没有正确排序,因此可能与带引号的$order有关。我检查了表,似乎没有问题。您是否尝试过按名称分组,按$order分组,不带引号?是否检查了数据库以确保数据没有丢失或损坏?除此之外,你的桌子好像坏了。像
(也许你的意思是
),未关闭的
标签,各种各样的问题。也许你的浏览器得到了更新,现在它没有正确显示这个HTML,除了第一列之外,它什么都省略了——这只是一个猜测。我没有尝试过使用$order(不带引号)按名称顺序分组。自从发布这个问题以来,我发现我的其他查询没有正确排序,所以可能与$order有引号有关。我检查了表,它看起来很好。我找到了它。我误解了nick rulez关于按$order删除name order中的引号的建议。当我将“按名称分组”顺序改为“按名称分组”顺序时,问题就解决了。仍然不知道为什么它会工作10年,然后停止,但我猜我的isp对mysql或php进行了更新,导致了这个问题。谢谢大家的建议和支持,我找到了。我误解了nick rulez关于按$order删除name order中的引号的建议。当我将“按名称分组”顺序改为“按名称分组”顺序时,问题就解决了。仍然不知道为什么它会工作10年,然后停止,但我猜我的isp对mysql或php进行了更新,导致了这个问题。感谢大家的建议和支持。