Динамична ротация на резултати от DB
25-01-2011
Първо ще дам кода, после ще ви обясня.

rotator.php :

<script type="text/javascript" src="jquery.min.js"></script>
<script>
function getRand() {
$.ajax({
url: "getUsername.php",
success: function(response) {
$("#random").html(response).hide().fadeIn("slow");
}
});
};
setInterval("getRand()", 1000);
</script>
<div id="random"></div>


Така, първо и задължително нещо е да include-нем jquery библиотеката.
После правим една функция с която посредством $.ajax правим request към даденият файл, ако няма никакви проблеми на "success" и даваме да извършва функция, функцията приема параметър "response" която присвоява върнатият резултат от файла към който сме дали request. След това, просто присвояваме на нашият div с id "random", стойноста на "response".

SetInterval... Тук идва тънкият момент. Първият параметър приема функцията (може да приема и други работи, но в конкретният случай е функция), а вторият параметър е времето през което да изпълни функцията в милисекунди (1000 милисекунди = 1 секунда). И така изпълняваме тази функция през една секунда и тя всеки път прави request към нашият файл.

getUsername.php

<?php
$connect = mysql_connect("localhost", "root", "password") or die ("No connection");
mysql_select_db("database", $connect) or die ("I Cant Select Database");
$row = mysql_fetch_assoc(mysql_query("SELECT username FROM `users` ORDER BY rand()"));
print $row["username"];
?>



Виждате един най-обикновен PHP код. Първите 2 реда са връзка с базата данни.
3-тият - обикновена заявка, но за да има всеки път различен върнат резултат слагаме ORDER BY rand(), за да подрежда резултатите по случайност (random). След това просто извеждаме този резултат.
Това е от мен. Надявам се да Ви е било полезно, ако имате въпроси - в коментарите (най-добре).

Demo: http://87.121.88.241/ (Не е 24/7, съжалявам)

Архив с необходимите файлове - link

УРОКЪТ Е АВТОРСКИ И ЗАБРАНЯВАМ КОПИРАНЕТО МУ.








/ Трябва да сте регистриран за да напишете коментар /
От: Hous
21:50 31-01-2011
интересно , за много неща може да се ползва.
Дали се поддържа от всички браузъри?
От: Karcho
22:18 31-01-2011
Да
От: kitchenbg
13:03 17-02-2011
интересно :)
От: MaLa_NocHe
17:41 04-03-2011
Имма проблем:

През определен период от рефрешвания ми изкарва това:

Warning: mysql_connect() [function.mysql-connect]: User questgam_imdb already has more than 'max_user_connections' active connections in /home/questgam/public_html/config.php on line 6
Не мога да се свържа с базата данни
От: zdark
12:46 13-03-2011
Ако някой може, нека да качи някаде демо. Където е 24/7
От: streleca_stz
10:44 18-03-2011
Уоу това много ще ми помогне! Мерси много! :)
От: streleca_stz
10:49 18-03-2011
Имам един върпос. Може ли да се направи когато например презаредиш страницата да се показват веднага? Защото забелязах, че като рефрешнеш или влезеш за първи път в началото не се показва нищо, а трябва да се изчака интервала който сме посочили за показване на всеки резултат, за да се покаже първият резултат...
От: emcuemnecu
20:05 24-03-2011
А при мен не излиза нищо. Само бяла страница ? Защо така ?
1