Php 使用Smarty、Mysql和Jquery的问题

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

我在使用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>
{/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);