Autor Zpráva
Jack06
Profil
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
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
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
Nevím to mi nic nedělá.. poříd stejný výsledek :-(
Jack06
Profil
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
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
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
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
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...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: