2010-06-25 6 views
0

J'ai un problème dans l'utilisation Samrtm Mysql et Jquery ou Ajax et si j'utilise un reloader auto div il affiche une erreur php .. ce sont mes fichiers: ACCEPTER. html (Template)Un problème avec l'utilisation Smarty & Mysql et Jquery

{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 (fichier principal)

<?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); 

?> 

et quand j'utilise la chose Jquery ou Ajax il montre cette erreur:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\somefo\accept.php on line 6

Fatal error: Call to a member function assign() on a non-object in C:\AppServ\www\somefo\accept.php on line 11

Je ne sais pas pourquoi il montre ce .. et j'espère que vous me répondez et quoi ou comment résoudre ce problème

Merci ..

+0

essayer d'exécuter 'S ELECT * FROM inviter WHERE recid = '$ _SESSION [id]' ET accepter = '0' ET endtime> '$ time'' directement sur phpmyadmin ou quelque chose comme ça avec des valeurs pré-déterminées pour les variables php. Voir s'il y a un résultat –

+0

je veux une résolution directe .. je veux dire dans le fichier pas dans le phpmyadmin et merci de toute façon – Sayed

Répondre

0

Pour 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] 

?> 

JS à tester:

setInterval(function() { 
    $('#invite').load('accept.php', function() { 
    alert('loaded'); // it is to check content is loaded 
    }).fadeIn("slow"); 
}, 1000); 
+0

Merci pour votre réponse .. mais maintenant il est dit Aucune base de données sélectionnée – Sayed

+0

vous devez le faire au début d'un script: 1. connectez-vous à db (mysql_connect), 2. sélectionnez une base de données (mysql_select_db). Post édité. – silent

+0

il a été résolu mais il cache le modèle au lieu de le recharger – Sayed