За последние 24 часа нас посетили 16684 программиста и 1694 робота. Сейчас ищут 797 программистов ...

Таблица рефреш...незнаю уже(

Тема в разделе "JavaScript и AJAX", создана пользователем blake, 29 авг 2011.

  1. blake

    blake Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    1
    Симпатии:
    0
    Здраствуйте у меня проблема такого плана на сайте у меня есть две таблицы и в одной из них у меня обновляются значения из базы данных... но этого неувидеть без обновления именно этой таблицы где произошло обновление... суть вопроса я думаю ясна... мне надо чтобы как то эта таблица обновлялась допустим через каждые 15секунд... подскажите пожалуйста или дайте совет как лудше поступить или кодом может кто поможет маленьким...( я уже незнаю куда обратится...(

    вот код таблицы:
    PHP:
    1. <td width="244" align="center" valign="top" bordercolor="" background="b.png" bgcolor="#6600FF" style="overflow: auto; height: 520px;"><font color='white' size='3'><span class="стиль4"><br />
    2.       </span></font><font size='3'><span class="стиль4">    <span class="стиль5">Сейчас  в комнате:</span></span></font><br />
    3.         <br /><div align="center" style="overflow-y:auto; height: 490px;">
    4.           <font size='3'><strong>
    5.           <span class="стиль5">
    6.           <?php
    7. file_put_contents( 'error.log', mysql_error() . "\n" );
    8. $query = mysql_query( "UPDATE `users` SET `group`= 'chat' WHERE `login` = '$_SESSION[login]'" ) or die(mysql_error());
    9. if($query == true)
    10. {
    11.  $query = mysql_query( "SELECT `id`, `login` FROM `users` WHERE `group`='chat'" ) or die(mysql_error());
    12.  if($query == true)
    13.  {
    14.   while($result = mysql_fetch_assoc($query))
    15.   {
    16.    echo $result['login'], '<br />';
    17.   }
    18.  }
    19. }
    20. $now = date( 'Y-m-d H:i:s', time() - 1 * 60 );
    21. $query = mysql_query( "UPDATE `users` SET `group`='Offline' WHERE `up_time`<'$now'" );
    22. ?>
    23.           </span></strong></font></div>
    24.           </td>
    как вы видите это код таблицы из чатной комнаты...
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    читай про AJAX и про JSON
     
  3. Skyers

    Skyers Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    54
    Симпатии:
    0
    решение

    Ну я в краце обьясню поподробней )

    вот этот код

    PHP:
    1.  
    2. <?php
    3.  file_put_contents( 'error.log', mysql_error() . "\n" );
    4.  $query = mysql_query( "UPDATE `users` SET `group`= 'chat' WHERE `login` = '$_SESSION[login]'" ) or die(mysql_error());
    5.  if($query == true)
    6.  {
    7.   $query = mysql_query( "SELECT `id`, `login` FROM `users` WHERE `group`='chat'" ) or die(mysql_error());
    8.   if($query == true)
    9.   {
    10.    while($result = mysql_fetch_assoc($query))
    11.    {
    12.    echo $result['login'], '<br />';
    13.    }
    14.   }
    15.  }
    16.  $now = date( 'Y-m-d H:i:s', time() - 1 * 60 );
    17.  $query = mysql_query( "UPDATE `users` SET `group`='Offline' WHERE `up_time`<'$now'" );
    18.  ?>
    записуешь в отдельный файл скажем ajax_sql.php
    потом создаешь файлик скажем tabl.js и в нем примерно следующее

    [js]
    $(document).ready(function(){

    setInterval(showtab,3000); //будет выполнять функцию шоутаб каждые 3 сек

    function showtab() {
    var url = 'ajax_sql.php'; //файл с пхп откуда будет инфа
    $.get (
    url, "" ,
    function(result) {
    $('#insert').html(result); // создай див <div id="inser"></div> и вставь де нада что бы добавлялась инфа ну или просто добавь этот индфикатор де нада...
    }
    ,
    ""
    );
    }


    });
    [/js]
    после в хед добавь эти скрипты
    HTML:
    1.  
    2. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    3. <script src="tabl.js"></script>
    4. ....
    5. </head>
    6.  
    ну и должно работать если твой пхп верный... я проверил у меня все ок, тока я просто выводил
    PHP:
    1. echo "1111";