Php 使用Smarty、Mysql和Jquery的问题
我在使用Samrtm Mysql和Jquery或Ajax时遇到问题 如果我使用div自动换装器 它显示了一个php错误。。 这些是我的文件: accept.html模板Php 使用Smarty、Mysql和Jquery的问题,php,jquery,ajax,smarty,Php,Jquery,Ajax,Smarty,我在使用Samrtm Mysql和Jquery或Ajax时遇到问题 如果我使用div自动换装器 它显示了一个php错误。。 这些是我的文件: accept.html模板 {literal} <script type="text/javascript"> var auto_refresh = setInterval( function () { $('#invite').load('accept.php').fadeIn("slow"); }, 1000); </script&g
{literal}
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#invite').load('accept.php').fadeIn("slow");
}, 1000);
</script>
{/literal}
<div id="invite">
<fieldset>
<legend>Invites</legend>
{section name=ct loop=$invites}
You have an invite {$sender.user}<br />
<a href="?action=accept_contest&sid={$invites[ct].sendid}">Accept</a> | <a href="?action=cancel_contest&sid={$invites[ct].sendid}">Cancel</a>
{/section}
</fieldset>
</div>
accept.php主文件
<?php
$time = date("i:s",time("s"));
$sql_select_invite = mysql_query("SELECT * FROM invite WHERE recid = '$_SESSION[id]' AND accept = '0' AND endtime > '$time'");
while($invite = mysql_fetch_array($sql_select_invite)){
$sender = mysql_fetch_array(mysql_query("SELECT * FROM member WHERE id = '$invite[sendid]'"));
$contest->assign("sender", $sender);
$invites[] = $invite;
}
$contest->assign("invites", $invites);
?>
当我使用Jquery或Ajax时
它显示了这个错误:
警告:mysql_fetch_数组:已提供
参数不是有效的MySQL结果
资源
C:\AppServ\www\somefo\accept.php
第6行
致命错误:调用成员函数
在中的非对象上指定
C:\AppServ\www\somefo\accept.php
第11行
我不知道为什么它会显示这一点。。我希望你能回答我
如何解决这个问题
感谢..的php:
<?php
$sql = mysql_connect(......); // connect to your server
if (!$sql) {
die('Can\'t connect to database');
}
// select your database
mysql_select_db('your_db', $sql) or die('Can\'t select database');
$time = date("i:s",time("s"));
$sql_select_invite_query = "SELECT * FROM invite WHERE recid = '$_SESSION[id]' AND accept = '0' AND endtime > '$time'";
// print it if you want to see sql query to test it in phpmyadmin
echo $sql_select_invite_query;
// --------------------------------------------------------------
$sql_select_invite = mysql_query($sql_select_invite_query, $sql);
if (!$sql_select_invite) { // check for error in query
die(mysql_error()); // and print it
}
$invites = array(); // don't forget to make an empty array
while($invite = mysql_fetch_array($sql_select_invite, $sql)){
// this place is not good, just make it as you do before, with checks
$sender = mysql_fetch_array(mysql_query("SELECT * FROM member WHERE id = '$invite[sendid]'"));
$contest->assign("sender", $sender);
$invites[] = $invite;
}
$contest->assign("invites", $invites); // in your case there is no $invite
// array cause mysql_fetch_array returned
// false and it is not defined before [while]
?>
谢谢你的答复。。但是现在它说没有选择数据库。你必须在脚本的开头这样做:1。连接到数据库mysql_connect,2。选择数据库mysql\u select\u db。后期编辑。已解决此问题,但它会隐藏模板而不是重新加载模板。什么是隐藏?隐藏div或ajax返回空数据?ajaxhtml模板中有javascript吗?或者主html代码中的某些内容?您有哪些代码可以隐藏div?请尝试直接在phpmyadmin或类似的php变量上执行SELECT*FROM invite,其中recid='$\u SESSION[id]'和accept='0'和endtime>'$time'。看看是否有任何结果我想直接解决。。我的意思是在文件里,不是在phpmyadmin里,谢谢你
setInterval( function () {
$('#invite').load('accept.php', function() {
alert('loaded'); // it is to check content is loaded
}).fadeIn("slow");
}, 1000);