我有一个页面应该显示AJAX从数据库中获取的一些数据,但它会显示错误消息。
显示数据的页面:
<html>
<head>
<style type="text/css">
a {
text-decoration:none;
}
</style>
<script type="text/javascript">
function showUser(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getinfo.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
mysql_connect("localhost","username","password");
mysql_select_db("databasename");
//$niftystocks=array();
$sq="SELECT TPNTCode FROM `niftystock`";
$r=mysql_query($sq);
$i=0;
while ($ro=mysql_fetch_array($r)) {
//array_push($niftystocks,$row['TPNTCode']);
$tpnt=$ro['TPNTCode'];
$sql="SELECT * FROM `nsepricequotes_latest` where TickerPlantCode = '$tpnt' ";
$rs=mysql_query($sql);
$row=mysql_fetch_array($rs);
if ($i == 0)
echo "--" . $row['DateTime'] . "--";
$sy=$row['Symbol'];
echo "<span id='txtHint'></span><a href='#'><span onmouseover='showUser()'>$sy</span>: " . $row['LastTradedPrice'] . " (" . $row['PercentChange'] . ")</a>";
if($row['PercentChange'] >= 0)
echo " <img src='http://mastertrade.in/master/ticker/images/arrow-up.gif' border='0' > | ";
else
echo " <img src='http://mastertrade.in/master/ticker/images/arrow-down.gif' border='0' > | ";
$i++;
}
?>
getinfo.php:
<?php
$q=$_GET['q'];
echo $q;
$con = mysql_connect('localhost', 'username', 'password');
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("databasename", $con);
$sql1="Select OpenPrice,HighPrice,LowPrice from nsepricequotes_latest WHERE Symbol like '".$q."' ";
while($row1= mysql_fetch_array($sql1)) {
$openprice=$row1['OpenPrice'];
$highprice=$row1['HighPrice'];
$lowprice=$row1['LowPrice'];
$tpnt=$row1['TickerPlantCode'];
}
$sql="SELECT * FROM 52wkhighlow WHERE nFTCode = '$tpnt'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
$wkhigh=$row['BSE52WkHighVal'];
$wklow=$row['BSE52wlLowval'];
}
?>
<html>
<body>
<table>
<tr>
<td>Open Price</td><td><?php echo $openprice; ?></td>
<td>High Price</td><td><?php echo $highprice; ?></td>
<td>Low Price</td><td><?php echo $lowprice;?></td>
<td>52 Week High</td><td><?php echo $wkhigh;?></td>
<td>52 Week Low</td><td><?php echo $wklow;?></td>
</tr>
</table>
</body>
</html>
我收到了这个错误:
-undefined警告:mysql_fetch_array():提供的参数不是第11行/home/mastertr/public_html/master/ticker/getinfo.php中的有效MySQL结果资源
答案 0 :(得分:2)
因为您没有运行$sql1
查询
设置:
$sql1="Select OpenPrice, HighPrice, LowPrice from nsepricequotes_latest
WHERE Symbol like '". mysql_real_escape_string($q)."' ";
$result_1 = mysql_query( $sql1 );
然后开始:
while( $row = mysql_fetch_array($result_1) )
而不是:
while( $row = mysql_fetch_array($sql1) )
答案 1 :(得分:1)
您忘记了mysql_query()
$sql1="Select OpenPrice,HighPrice,LowPrice from nsepricequotes_latest WHERE Symbol like '".$q."' ";
while($row1= mysql_fetch_array($sql1))
应该是
$sql1="Select OpenPrice,HighPrice,LowPrice from nsepricequotes_latest WHERE Symbol like '".$q."' ";
$res = mysql_query($sql1);
while($row1= mysql_fetch_array($res))
答案 2 :(得分:0)
在鼠标悬停中有以下内容:
showUser()
请注意,undefined和“”不一样。
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
上述方法不起作用,因为str未定义且不是空字符串。 要么这样做:
showUser("")
或者这样做:
if (str == undefined)