Autor | Zpráva | ||
---|---|---|---|
Jack06 Profil |
#1 · Zasláno: 1. 2. 2009, 11:30:41 · Upravil/a: Jack06
sklo.php
<?php require_once "../ajax/refresh.php"; echo '<div id="sklo">'; $result = $join_db->query("SELECT * FROM ".$_GET['rid']."_text WHERE pro='all' ORDER BY id DESC LIMIT 0, 20"); while($s_r = $result->fetch_row()){ // if (($text["od"] == $nick) AND ($text["pro"] != "all")){ // $znak = "->".$text["pro"].": "; // } // if ($text["pro"] == $nick){ // $znak = "->$nick: "; // } if ($s_r["pro"] == "all"){ $znak = ":"; } if (($s_r["od"] != "System") AND ($s_r["od"] != "".$_SESSION['user_nick']."") AND ($s_r["od"] != "")){ $nahr_co = array($_SESSION['user_nick']); $nahr_cim = array("<b>".$_SESSION['user_nick']."</b>"); $btext = str_replace($nahr_co, $nahr_cim, $s_r[4]); } else{ $btext = $s_r[4]; } // převod odkazů if ((!eregi("<a href", $btext)) AND (!eregi("<img", $btext))){ $btext = eregi_replace('http://([a-zA-Z0-9\?=%&/\$\._äëöü#;-]*)', '<a href="http://\\1" target="_blank">http://\\1</a>', $btext); } $od_nick = $s_r[2]; $od_nick = preg_replace('/\*(\d+)\*/', '', $od_nick); echo " <p>".$s_r[1]."<b> ".$od_nick."$znak </b> ".$btext."</p></font> "; } echo '</div>'; ?> config.php try { $join_db = new mysqli('localhost', 'root', 'vertrigo', 'pokus'); if(!$join_db){ throw new Exception('connect databases faild!'); } } catch (Exception $e){ echo $e->getMessage(); } // check mysqli_connect_errno try { $join_db = new mysqli('localhost', 'root', 'vertrigo', 'oikus'); if(mysqli_connect_errno()){ throw new Exception('connect databases faild!'); } } catch (Exception $e){ echo $e->getMessage(); } refresh.php <script type="text/javascript"> function ajaxFunction() { var xmlHttp; try { xmlHttp=new XMLHttpRequest(); } catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Váš prohlížeč nepodporuje AJAX"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { var x=document.getElementById("sklo"); x.innerHTML = xmlHttp.responseText; } } xmlHttp.open("GET","print_text.php",true); xmlHttp.send(null); } //var interval = 5; //setTimeout('ajaxFunction()', interval*1000); window.setInterval('ajaxFunction()', 5000); </script> toto ještě volám: <a href="window.php?rid=<? echo $_GET['rid'];?>" onclick="ajaxFunction()">Obnovit</a> Je to v rámech.. Jde o to, že když kliknu na to obnovit tak se mi to normálně obnocí a jde to jak bych chtěl, ovšem když se to obnoví pomocí setInterval tak mi to napíše: Fatal error: Call to a member function query() on a non-object in C:\Software\VertrigoServ\www\pokus\print_text.php on line 4 Nevíte prosím proč, nebo jak udělat refresh aby fungoval?? Základní stavba kódů není mím výtvorem, potřebuji zjistit jak to spracovat aby to fungovalo.. |
||
dRaGen Profil |
#2 · Zasláno: 1. 2. 2009, 12:01:16 · Upravil/a: dRaGen
Nemam moznost to odzkouset ale podle zbeznyho pohledu by to volani xmlhttpOpen melo byt driv nez zavolas vystup.
edit: pardon :-X telefon mi usekl konec tý chybový hlášky, takže tady chyba nebude |
||
nightfish Profil |
#3 · Zasláno: 1. 2. 2009, 12:49:13
„Fatal error: Call to a member function query() on a non-object in C:\Software\VertrigoServ\www\pokus\print_text.php on line 4“
znamená, že na řádku 4 nemá objekt $join_db funkci query() - tzn. s tím objektem je něco v nepořádku (nebyl vytvořen, nepřipojil se atd.) |
||
Jack06 Profil |
#4 · Zasláno: 1. 2. 2009, 13:21:13
Nevím to mi nic nedělá.. poříd stejný výsledek :-(
|
||
Jack06 Profil |
#5 · Zasláno: 1. 2. 2009, 13:25:15
nightfish
a jak udělat aby se připojil.. dopsal jsem soubor config jak vypadá.. Spíše mi vrtá hlavou, proč když kliknu na to obnovení tak to funguje, ale když se to obnovení provede přez interval hodí to chybu.. ? :-( |
||
AM_ Profil |
#6 · Zasláno: 1. 2. 2009, 18:50:35 · Upravil/a: AM_
A vytváříš v souboru print_text.php správně $join_db = new mysqli(... ? Ta hláška znamená, že join_db není objekt (tudíž buď new mysqli vrátilo false, nebo jsi ho vůbec neprovedl).
nightfish „znamená, že na řádku 4 nemá objekt $join_db funkci query() - tzn. s tím objektem je něco v nepořádku (nebyl vytvořen, nepřipojil se atd.)“ Přelož si tu hlášku a pak raď. "on a non-object" znamená, že $join_db není VŮBEC objektem, a ne že je s ním něco v nepořádku. Před pár dny jsi mi tady v jiném tématu říkal, abych se nepletl do věcí, kterým nerozumím, když jsem náhodou nevěděl jistou věc o zadávání cest. Takže zase nejsi takový vševěd, viď? (promiňte ostatní tenhle flame ale v Tomto tématu se můžete přesvědčit o přívětivosti nightfishe). |
||
Jack06 Profil |
#7 · Zasláno: 1. 2. 2009, 20:15:08
AM_
Právě že ho musím volat správně.. kdybych ho nevolal správně tak by mi nefungoval ani před refreshem.. Funguje mi do té doby než proběhne script pro refresh... |
||
AM_ Profil |
#8 · Zasláno: 2. 2. 2009, 21:29:32
Chápeš trochu princip PHP? jakýkoiv refresh (nebo i AJAX request) znamená nové spuštění PHP skriptu, tudíž se musíš znovu připojit do databáze. PHP skripty nejsou nepřetržitě běžící programy (jako desktopové), při každém načtení stránky se spouští znovu (a proto existují věci jako GET a SESSION, aby bylo možné uchovávat informace mezi jednotlivými načteními stránek a vytvořit tak plynulou webovou aplikaci, ale to jen tak na okraj to přímo s tématem nesouvisí).
|
||
Jack06 Profil |
#9 · Zasláno: 3. 2. 2009, 16:17:52
AM_
Fajn jsou tady scripty.. jak php tak ten javascript.. V tom případě jak to udělat aby to neházelo chybu..? Připojení do databáze je přez mysqli.. a to přez request configu... |
||
Časová prodleva: 15 let
|
0