Страница 2 от 2 ПърваПърва 12
Резултати от 16 до 19 от общо 19

PHP, Java и обратна връзка...

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #16

    Re: PHP, Java и обратна връзка...

    Страшно съм благодарен за направеното. Все пак е доста повече от това което разбирам за бази данни и боравенето с тях. Сега може ли да помрънкам малко .
    Следващото в никав случай не искам да се разбира като оплакване или не оценяване на това което си направил. Просто като идеи как да се оптимизират нещата.
    1.Необходимо ли е да се създава нова таблица? Първо какво наричаш брой ходове? В шахматен смисъл един ход е последователно еднократно преместване на белите и черните. Или имаш предвид броя премествания. От това което видях базата броя ходове e = fenn_fullmove_number-1 а преместванията могат да се сметнат много лесно използвайки fen_halfmove_clock и fen_fullmove_number.
    Код:
    if fen_halfmove_clock then prem=fenn_fullmove_number*2-1
    else prem=(fenn_fullmove_number-1)*2
    2 Защо е необходим изобщо този брой ходове? Не може ли да се запомни просто ской цвят е дадения играч и да се изполва някаква такава проверка:
    Код:
     if (mycolor= fen_active_color) then refresh_bigpage()
    ?

    Не искам да се създава нова таблица защото и мястото е ограничено. Всъщност хостинага е 50MB дисково пространство( страници, скриптове, картинки, база, поща) и 1GB/месец.

  2.  
     
  3. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #17

    "некои съображения"

    Има една причина, поради която не е достатъчно да следим само цвета на отбора, който е наред да мести.
    Ако съм "кибик" и двамата, които зяпам преместят бързо по веднъж, то при мен може да се изпусне този момент, защото няма да има инфо дали "ВСЕ ОЩЕ белият е на ход" или "ОТНОВО са белите"...

    Иначе ми се струва, че би могло да стане и без нова таблица наистина.
    Полето `last_date` (както и length(pgn_movetext)) са достатъчно информативни, проблемът е, че ТЕХНИЧЕСКИ не знаем как да предаваме техните стойности между двата фрейма, без да ги записваме на сървъра.

  4. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #18

    Re: PHP, Java и обратна връзка...

    Все си мисля, че с този IFRAME нагазвате в дълбоки :cens:
    Аз бих опитал следното:


    1) Преименувате страницата, която искате да се обновява
    при определени условия (ще я нарека index.php за улеснение) на real_index.php.

    rename index.php -> real_index.php

    2) Създавате страница index.php (името на оригиналната) със следното съдържание:

    index.php:
    Код:
    <html>
    
    <head>
    
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">
    
    </head>
    
      <frameset rows="0,*" framespacing="0" border="0" frameborder="NO">
    
        <frame src="check_event.php">
        <frame src="real_index.php">
    
      </frameset>
    
      <noframes>
            <body>
    Your browser is very fucked up...
            </body>
      </noframes>
    
    </html>
    3) Създавате страница с име check_event.php със следното съдържание:
    check_event.php:
    Код:
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">
    <?php
    
    // Тук слагате функцията, която проверява дали събитието е настъпило - т.е. дали трябва да се
    // обнови цялата страница или не. Примерно:
    
    function check_event() {
    
    	$objConnDB=mysql_connect("hostname","sql_username","sql_password")
        	or die('Could not connect: ' . mysql_error());
    
    	mysql_select_db("db_name", $objConnDB) 
        	or die('Could not select database');
    
    	$count_q = "SELECT count(*) FROM `ime_na_tablicata`;"
    	$cr = mysql_query($count_q)
    		or die('Query failed: ' . mysql_error());
    
    	$count = mysql_fetch_array($cr);
    
    	$q = "SELECT `ime_na_kolonata` FROM `ime_na_tablicata` WHERE id = '".$count."';"
    
    
    
    	$qr = mysql_query($q)
    		or die('Query failed: ' . mysql_error());
    
    	$r = mysql_fetch_array($qr);
     
    	return $r["ime_na_kolonata"];
    }
    
    // приемам, че стойност "yes" означава да се обнови страницата, а всяка друга
    // стойност - да продължим с проверките, докато check_event не придобие
    // стойност "yes"
    
    
    If ( check_event() == "yes" ) {
    
    ?>
    
    <!-- Comment: Първи случай - променливата е придобила стойност "yes" -->
    
        <meta http-equiv="refresh" content="2;url=">
    
    <?php } else { ?>
    
    <!-- Comment: Втори случай - променливата е придобила стойност различна от "yes" -->
    
        <body onload=setTimeOut('top.location="index.php"',1000)>
    
    <?php } ?>
    В първия случай зареждаме index.php, която презарежда check_event.php И real_index.php.

    Във втория случай презареждаме САМО check_event.php.


    Относно:


    • <meta http-equiv="refresh" content="2;">

      "2" означава "2 секунди" - всеки 2 секунди ще се проверява условието
      чрез обновяване само на check_event.php.

    • setTimeOut('top.location="index.php"',1000)

      1000 означава 1 секунда - главаната страница ( index.php ) ще се презареди след 1 сек.
      Ако искате това да стане без закъснение, достатъчно е да се замени
      редът
      <body onload=setTimeOut('top.location="index.php"',1000)>
      със
      <body onload="top.location='index.php'">


    _______________________________________________________
    Код:
    П.П.
    
    Не копирайте кода директно, защото:
         - целта му е да покаже само идеята и евентуалния алгоритъм за реализацията и;
         - написах го на "прима виста" и не съм го проверявал обстойно за грешки;
         - има доста променливи за смяна;
    
    Успех!

  5. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #19

    Re: PHP, Java и обратна връзка...

    След разчовъркване на кода на XOOPS се натъкнах на някои полезни функции.
    Кода на скрития фрейм стана следния:
    Код:
    <?
    require_once '../../mainfile.php';
    require_once XOOPS_ROOT_PATH . '/modules/chess/class/chessgame.inc.php';
    require_once XOOPS_ROOT_PATH . '/modules/chess/include/constants.inc.php';
    require_once XOOPS_ROOT_PATH . '/modules/chess/include/functions.inc.php';
    
    global $xoopsUser;
    
     function chess_get_game($game_id)
     {
    	global $xoopsDB;
    
    	$table  = $xoopsDB->prefix('chess_games');
    	$result  = $xoopsDB->query("SELECT * FROM $table WHERE game_id = '$game_id'");
    	$gamedata = $xoopsDB->fetchArray($result);
    	#var_dump('chess_get_game, gamedata', $gamedata);#*#DEBUG#
    	$xoopsDB->freeRecordSet($result);
    
    	return $gamedata;
     }
    
    $gamedata = chess_get_game($game_id);
    
    $uid = isset($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
    if ($uid and (($gamedata['white_uid']==$uid)or($gamedata['black_uid']==$uid))){
     if ((($gamedata['white_uid']==$uid)and($gamedata['fen_active_color']=='w'))or
       (($gamedata['black_uid']==$uid)and($gamedata['fen_active_color']=='b'))){
     ?>
     <script language="javascript">
      parent.location.href=parent.location.href;
     </script>
     <?
     }
    }
    ?>
    Тъйкато скрития фрейм е необходим само при изигран наш ход сктития фрем се поставя в game.php По следния начин:
    Код:
    $uid = isset($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
    if ($uid and (($gamedata['white_uid']==$uid)or($gamedata['black_uid']==$uid))){
     if ((($gamedata['white_uid']==$uid)and($gamedata['fen_active_color']=='w'))or
       (($gamedata['black_uid']==$uid)and($gamedata['fen_active_color']=='b'))){
      ;
    
     }
     else
     {
      echo ('<iframe frameborder="0" src="skrit.php?game_id='.$game_id.'" width="0" height="0" onLoad="setTimeout(\'document.location=document.location\',60000)"></iframe>');
     }
    }

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn
Страница 2 от 2 ПърваПърва 12

Подобни теми

  1. Помощ за код за обратна връзка.
    От DerekMTN във форум Уебдизайн и 3D
    Отговори: 4
    Последно: 13-03-09, 16:42
  2. Java
    От Bibi във форум Програмиране
    Отговори: 14
    Последно: 09-12-05, 18:26
  3. Обратна връзка към e-mail
    От parazit във форум Уебдизайн и 3D
    Отговори: 15
    Последно: 23-09-03, 20:47
  4. Win XP и Java
    От nniki във форум Windows
    Отговори: 2
    Последно: 09-05-03, 11:11
  5. JAVA za XP ???
    От AMOK във форум Windows
    Отговори: 10
    Последно: 10-08-02, 20:09

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе