同样一条SQL语句,为什么在NAVICAT 和程序中结果却不一样呢?

alibaren 2012-09-29 02:59:38
我用MYSQL管理工具NAVICAT里面的查询工具查询以下:
SELECT DATE_FORMAT(real_time,"%H%i"),stock_price,turnover,bigbuycount,bigsellcount FROM stock_data WHERE stock_code=883300 and get_time = "2012-09-28" and real_time="09:30:00"
有一条记录。
但是我在PHP程序中输出这个结果时却没有结果。
这是什么问题?
...全文
1688 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
alibaren 2012-12-29
  • 打赏
  • 举报
回复
alibaren 2012-12-29
  • 打赏
  • 举报
回复
alibaren 2012-10-01
  • 打赏
  • 举报
回复
原来如此,我明白了,多谢
[Quote=引用 15 楼 的回复:]
$arr = mysql_fetch_array($res); //哥,你这里先取了一次,但是并没有使用这个结果
echo"<table>";
while($arr = mysql_fetch_array($res)){ //然后,这里才从第二行数据开始使用,肯定要少一条啊
echo'<tr>';
echo'<td>'.$arr['DATE_FORMAT(real_time,"%H%i")……
[/Quote]
woqutech 2012-09-30
  • 打赏
  • 举报
回复

$arr = mysql_fetch_array($res); //哥,你这里先取了一次,但是并没有使用这个结果
echo"<table>";
while($arr = mysql_fetch_array($res)){ //然后,这里才从第二行数据开始使用,肯定要少一条啊
echo'<tr>';
echo'<td>'.$arr['DATE_FORMAT(real_time,"%H%i")'].'</td>';
echo"<td>".$arr["stock_price"]."</td>";
echo"<td>".$arr["turnover"]."</td>";
echo"<td>".$arr["bigbuycount"]."</td>";
echo"<td>".$arr["bigsellcount"]."</td>";
echo"</tr>";
alibaren 2012-09-29
  • 打赏
  • 举报
回复
我自己找到原因了,我把程序调整为
<?php
header ( "Content-Type: text/html; charset=utf-8" );
date_default_timezone_set ( 'PRC' );
$Link = mysql_connect ( "localhost", "root", "root" );
if (! $Link) {
echo "与数据库连接失败!";
exit ();
}
mysql_select_db ( "stock" );
$sql = 'SELECT DATE_FORMAT(real_time,"%H%i"),stock_price,turnover,bigbuycount,bigsellcount FROM stock_data WHERE stock_data.get_time = "2012-09-28" AND
stock_data.real_time = "09:30:00" AND stock_data.stock_code = "883300"';
$res = mysql_query ( $sql );
//$arr = mysql_fetch_array($res);echo"<table>";去掉
while(list ( $realtime, $stock_code, $price, $turnover, $bigbuycount, $bigsellcount ) = mysql_fetch_row ( $res ))
echo'<tr>';
echo'<td>'.$arr['DATE_FORMAT(real_time,"%H%i")'].'</td>';
echo"<td>".$arr["stock_price"]."</td>";
echo"<td>".$arr["turnover"]."</td>";
echo"<td>".$arr["bigbuycount"]."</td>";
echo"<td>".$arr["bigsellcount"]."</td>";
echo"</tr>";


}
echo"</table>";

这样结果就显示了,可是我不明白原理,为什么我用mysql_fetch_row 替换mysql_fetch_array就行了呢
alibaren 2012-09-29
  • 打赏
  • 举报
回复
太奇怪了,DOS下查询的结果记录数目居然跟网页输出的相差一条
alibaren 2012-09-29
  • 打赏
  • 举报
回复
是的,我在DOS里查询是有值的,为啥TD里没有输出
如果我改变限制条件,DOS下MYSQL得到9条记录,在网页上只有8条 总是少一条。
[Quote=引用 11 楼 的回复:]
哪里不显示? 你说while里面的td没有值?
[/Quote]
一起混吧 2012-09-29
  • 打赏
  • 举报
回复
哪里不显示? 你说while里面的td没有值?
alibaren 2012-09-29
  • 打赏
  • 举报
回复
你是说操作系统吧,我检查过,是东八区 跟程序里的PRC一致
[Quote=引用 8 楼 的回复:]
检查控制面板中日期时间的设置
[/Quote]
alibaren 2012-09-29
  • 打赏
  • 举报
回复
值是1,可记录不显示,为什么?

引用 4 楼 的回复:
编码问题?
$res = mysql_query ( $sql );
echo mysql_num_rows($res); //值是多少
[/Quote]
wwwwb 2012-09-29
  • 打赏
  • 举报
回复
检查控制面板中日期时间的设置
alibaren 2012-09-29
  • 打赏
  • 举报
回复
在哪检查?
[Quote=引用 6 楼 的回复:]
检查一下时区是否相同。
[/Quote]
ACMAIN_CHM 2012-09-29
  • 打赏
  • 举报
回复
检查一下时区是否相同。
alibaren 2012-09-29
  • 打赏
  • 举报
回复
值是1
[Quote=引用 4 楼 的回复:]
编码问题?
$res = mysql_query ( $sql );
echo mysql_num_rows($res); //值是多少
[/Quote]
一起混吧 2012-09-29
  • 打赏
  • 举报
回复
编码问题?
$res = mysql_query ( $sql );
echo mysql_num_rows($res); //值是多少
alibaren 2012-09-29
  • 打赏
  • 举报
回复
我的程序哪有错?我真没发现
<?php
header ( "Content-Type: text/html; charset=utf-8" );
date_default_timezone_set ( 'PRC' );
$Link = mysql_connect ( "localhost", "root", "root" );
if (! $Link) {
echo "与数据库连接失败!";
exit ();
}
mysql_select_db ( "stock" );
$sql = 'SELECT DATE_FORMAT(real_time,"%H%i"),stock_price,turnover,bigbuycount,bigsellcount FROM stock_data WHERE stock_data.get_time = "2012-09-28" AND
stock_data.real_time = "09:30:00" AND stock_data.stock_code = "883300"';
$res = mysql_query ( $sql );
$arr = mysql_fetch_array($res);
echo"<table>";
while($arr = mysql_fetch_array($res)){
echo'<tr>';
echo'<td>'.$arr['DATE_FORMAT(real_time,"%H%i")'].'</td>';
echo"<td>".$arr["stock_price"]."</td>";
echo"<td>".$arr["turnover"]."</td>";
echo"<td>".$arr["bigbuycount"]."</td>";
echo"<td>".$arr["bigsellcount"]."</td>";
echo"</tr>";


}
echo"</table>";
alibaren 2012-09-29
  • 打赏
  • 举报
回复
程序没啥错,我把查询限制条件更改为“WHERE get_time = "2012-09-28" and real_time="09:30:00”
在程序里有8条记录
而在NAVICAT里面有9条。
这是什么原因少一条记录呢。而且少的正是我前面要查询的那条。

[Quote=引用 1 楼 的回复:]
看下程序有没有出错,客户端和自己代码有个不同的地方是:客户端是会自动发其他的mysql 命令过去的.
比如show @@...
[/Quote]
荷兰人号 2012-09-29
  • 打赏
  • 举报
回复
看下程序有没有出错,客户端和自己代码有个不同的地方是:客户端是会自动发其他的mysql 命令过去的.
比如show @@...

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧