Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie rekordów
Forum PHP.pl > Forum > Przedszkole
artekp999
Piszę skrypt czatu więkoszści w PHP ale jest troche JS. Mój problem polega na odświeżaniu rekordu z bazy. W pliku wyswietlanie.php zawarty jest kod którym pobieram rekordy z bazy i je wyświetlam. Mój problem polega na tym że te rekordy są 1 sec po czym znikają a odswieżanie dalej trwa (mam tam aktualny czas więc widze kiedy odświeża).

plik główny
  1. <html>
  2. <head>
  3. <script language=javascript>
  4. // tworzymy zmienna
  5. var object = false;
  6.  
  7. // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
  8. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  9. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  10.  
  11. // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
  12. // DIVa poprzez obiekt XMLHttpRequest
  13. function getData(dataSource, divID)
  14. {
  15. // kontynuuje wylacznie gdy obiekt nie jest zajety
  16. if (object.readyState==4 || object.readyState==0)
  17. {
  18. // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
  19. var obj = document.getElementById(divID);
  20.  
  21. // czyta z pliku lub wykonuje skrypt
  22. object.open("GET", dataSource);
  23.  
  24. // definiuje metode obslugi odpowiedzi serwera
  25. object.onreadystatechange = function()
  26. {
  27. // kontynuuje jesli transmisja zostala zakonczona powodzeniem
  28. if (object.readyState == 4 && object.status == 200)
  29. obj.innerHTML= object.responseText;
  30. }
  31. // wysyla zadanie do serwera
  32. object.send(null);
  33. }
  34. }
  35.  
  36. // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
  37. // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
  38. function odswiezaj()
  39. {
  40. getData('wyswietlanie.php','mojDIVIK');
  41. setTimeout("odswiezaj()", 5000);
  42. }
  43.  
  44. </script>
  45. </head>
  46. include ("zabezpieczenie.php");
  47. include ("polacz.php");
  48.  
  49. echo '<center><a href="?pokoj=1">Podstrona</a>';
  50. echo '<a href="?pokoj=2">Podstrona</a>';
  51. echo '<a href="?pokoj=3">Podstrona</a>';
  52. echo '<a href="?pokoj=4">Podstrona</a>';
  53. echo '<a href="?pokoj=5">Podstrona</a>';
  54. echo '<a href="?pokoj=6">Podstrona</a>';
  55. echo '<a href="?pokoj=7">Podstrona</a></center><p>';
  56.  
  57. if ($_GET['pokoj'] == '1')
  58. {
  59. $kategoria = 1;
  60. }
  61. if ($_GET['pokoj'] == '2')
  62. {
  63. $kategoria = 2;
  64. }
  65. if ($_GET['pokoj'] == '3')
  66. {
  67. $kategoria = 3;
  68. }
  69. if ($_GET['pokoj'] == '4')
  70. {
  71. $kategoria = 4;
  72. }
  73. if ($_GET['pokoj'] == '5')
  74. {
  75. $kategoria = 5;
  76. }
  77. if ($_GET['pokoj'] == '6')
  78. {
  79. $kategoria = 6;
  80. }
  81. if ($_GET['pokoj'] == '7')
  82. {
  83. $kategoria = 7;
  84. }
  85.  
  86. $tresc = strip_tags(htmlspecialchars(mysql_real_escape_string($_POST['tresc'])));
  87. $nadawca = $_SESSION['nick'];
  88. $idnadawca = $user[id];
  89. $wyslano = date('G:i:s');
  90. {
  91. echo '<center>';
  92. echo "$kategoria";
  93. echo '<div class="title">
  94. Następną wiadomość możesz wysłać za <span id="sekundy"></span>&nbsp;sekund.
  95. </div>';
  96. echo '<form action="" method="post">
  97. <input type="hidden" name="send" value="1">
  98. <input type="hidden" name="kategoria" value="'.$kategoria.'" />
  99. <table><tr>
  100. <td><input type="text" name="tresc" size="40" maxlength="40"/></td><td><input name="dodaj" type="submit" value="Wyślij" id="button"></form></td></tr></table>';
  101. }
  102. ?>
  103.  
  104. <script type="text/javascript">
  105. o=document.getElementById('sekundy');
  106. function odliczaj(o,sek){
  107. o.innerHTML=sek
  108. if(sek>0)setTimeout(function(){odliczaj(o,--sek)},1e3)
  109. var input = document.getElementById('button');
  110. input.disabled = 'disabled';
  111. if(sek==0)input.disabled = "";
  112. }
  113. odliczaj(document.getElementById('sekundy'),30)
  114. </script>
  115.  
  116. <?php
  117. if((isset($_POST['dodaj'])))
  118. {
  119. if(empty($_POST["tresc"]))
  120. {
  121. echo 'Nie wypełniono wszystkich pól<br>';
  122. }
  123. else
  124. {
  125. $zapytanie = "INSERT INTO `czat` (`nadawca`, `idnadawca`, `wyslano`, `kategoria`, `tresc`) VALUES ('".$nadawca."', '".$idnadawca."', '".$wyslano."', '".$kategoria."', '".$tresc."')";
  126. $ostatnio = 'UPDATE `uzytkownicy` SET `ostatniododal`= "'.$ostatniododal.'" WHERE `id`="'.$user[id].'"';
  127. $idzapytania = mysql_query($zapytanie) or die(mysql_error());
  128. $idostatnio = mysql_query($ostatnio) or die(mysql_error());
  129. }
  130. if($_POST['send'])
  131. {
  132. if(isset($idzapytania))
  133. {
  134. if($idzapytania === TRUE)
  135. {
  136. echo '<font color="green"><b>Poprawnie wysłano wiadomość</b></font><br />';
  137.  
  138. }
  139. else
  140. {
  141. echo '<font color="red"><b>Nie udało się wysłać wiadomości. Proszę spróbować za jakiś czas!</b></font><br />';
  142. }
  143. }
  144. }
  145. }
  146. echo '</center>';
  147.  
  148. $adres='http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  149. if ($adres == "http://www.artekp999.cba.pl/czat.php" || $adres == "http://artekp999.cba.pl/czat.php" || $adres == "www.artekp999.cba.pl/czat.php")
  150. {
  151. $przekierowanie = 'czat.php?pokoj=1';
  152. header('HTTP/1.1 301 Moved Permanently');
  153. header('Location: '.$przekierowanie);
  154. }
  155.  
  156. $liczba_pokoi = 7; //sumuj z bazy, lub recznie zapisuj
  157. if($_GET['pokoj'] > $liczba_pokoi)
  158. {
  159. echo 'Niepoprawny pokój!';
  160. $przekierowanie = 'czat.php?pokoj=1';
  161. header('HTTP/1.1 301 Moved Permanently');
  162. header('Location: '.$przekierowanie);
  163. }
  164. else
  165. {
  166. echo '<div id="mojDIVIK">';
  167. include ("wyswietlanie.php");
  168. echo '</div>';
  169. ?>
  170. <script language=javascript>
  171. odswiezaj();
  172. </script>
  173. <?php
  174. }
  175. include ("stopka.php");
  176. ?>


wyswietlanie.php
  1. <?php
  2. echo (date('G:i:s'));
  3. $query = mysql_query("select * from czat WHERE `kategoria`='$kategoria' order by id desc limit 0,50");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<a href="news.php?id='.$rekord[2].'">'.$rekord[1].'</a>('.$rekord[3].') '.$rekord[5].'<br>';
  7. }
  8. echo "$naz";
  9. ?>
erix
Puść gdzieś ten kod na żywo (działający), bo wątpię, aby komukolwiek chciało się analizować linijka po linijce takiego tasiemca...
artekp999
Demo
http://www.artekp999.cba.pl/test/testy/czat.php?pokoj=1

login artek
haslo 12345

pomoże ktoś questionmark.gif?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.