クエリ文の問題

WBOY
WBOYオリジナル
2016-06-23 14:09:491063ブラウズ

データベースはmssqlです。このステートメントをクエリ アナライザーで実行しても問題ありません。しかし。ウェブサイトで使用すると、結果が異なります。

select top 6 * from WEB_VIEW where DNBH='$username' order by SFMonth desc

mssql クエリ アナライザーで実行し、最新の 6 つの結果を取得します。ただし、ページでテストすると、レコードは 5 つしか取得できません。最新のものはありません。

6 は 7 に変わりますか?

//connection to the database$dbhandle = mssql_connect($myServer, $myUser, $myPass)  or die("连接不上数据库"); //select a database to work with$selected = mssql_select_db($myDB, $dbhandle)  or die("连接不上指定数据库"); $username=trim($_POST['username']);$password=trim($_POST['pass']);//declare the SQL statement that will query the database$query = "select top 6 * from WEB_VIEW  where DNBH='$username' order by SFMonth desc ";//execute the SQL query and return records$result = mssql_query($query) or die ("查询数据失败: ".mysql_error());$numRows = mssql_num_rows($result); $nRow=mssql_fetch_array($result);if ($password <> substr($nRow[3],-4)) {echo "<h2>输入有误,请正确输入用户名和密码。谢谢!</h2>";}else	{    if (empty($numRows)) echo "<h2>没有查到数据哦,请正确输入用户名和密码。谢谢!</h2>";	else {	//$nRow=mssql_fetch_array($result);	echo "你好!电脑编号为";	echo "$username";	echo ",";	echo "户名";	echo "$nRow[2]";	echo "<table border='1'>			 <tr>				 <th>月份</th>				 <th>总费用</th>			</tr>	";	while($row=mssql_fetch_array($result))	{		echo"<tr>";		echo"<td>";		echo $row[1];		echo"</td>";		echo"<td>";		echo ($row[10]+$row[4]);		echo"</td>";		echo"</tr>";	}	mssql_close($dbhandle);    }}


ディスカッションへの返信 (解決策)

18 行目は $nRow=mssql_fetch_array($result); 最初のレコードが読み取られます
したがって、1 つ減ります
コードの 38 行目から 48 行目は次のようになります。に変更します。 echo"

";
echo ($row[10]+$row[4])
echo "fd273fcf5bcad3dfdad3c41bd81ad3e5 ";
}while($row=mssql_fetch_array($result)) ;

つまり、while ループの代わりに do wuile ループを使用します


パスワードの判定については、2 回クエリする必要はありません。

また調整させていただきます。

2 つの SQL 文を使用して確認します。良い解決策が思いつきません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。