Ротатор данных в одном окне, используя БД MySQL.

sevalery

Новичок
Необходим совет. Как создать Ротатор данных в одном окне, используя БД MySQL.
Сайт о недвижимости. Php база данных MySQL, шаблоны Smarty. таблицы выводятся в цикле и т.д
Есть "специальное предложение" - задается один № id. – ручной выбор.
Хочу сделать ротатор выбора 10-20 хороших предложений, чтобы они менялись в цикле с интервалом времени или при обновлении страницы или клике.
Ротатор или слайдер или карусель не знаю, как это назвать. Хочу, чтобы данные предложений сменяли друг друга в одном окне.
Специальное предложение в форме прямоугольника. В предложение входит: фото, цена, площадь, стоимость 1м2, город, улица, район, дата и т.д. Все данные кроме фото находятся в БД.
Может есть такой скрипт.
Или кому-то доводилось делать что-то подобное?
 

С.

Продвинутый новичок
Каждая задача состоит из серии боле мелких и простых. Как то: получить данные из базы. отправить и получить АЯКС запрос, изменить отображение данных яваскриптом. Где конкретно из этих подзадач есть проблема?
 

sevalery

Новичок
Задача №1: Как задать 10-20 хороших предложений. Можно сделать выбор по "Новой цене" - у меня в БД есть возможность чекбоксом задать любому предложению, значение 1, можно добавить выбор из тех что имеют фото, из последних 20 и т.д. Лучше создать дополнительную колонку в БД - "специальное предложение" и отправить запрос на вывод данных с таким предложением. - Думаю решение может быть таким.
Задача №2: получить все данные (20) из БД и отобразить первое предложение, лучше это сделать при помощи jQuery. Вот тут как отобразить одно-первое предложение?, и как создать "карусель"?
Просмотрел несколько различных скриптов: Ротаторов баннеров и рекламы, контента и текста. Ничего подходящего.
 

С.

Продвинутый новичок
Дружок, никто за тебя делать не будет, даже после разбития на подзадачи. Если ты програмист - делай, спрашивай, где КОНКРЕТНО не понятно. Если ты не программист, то нанимай оного.
 

sevalery

Новичок
Я ищу оптимальное решение - каким путем пойти, но не откажусь от готового решения или скрипта.
 

michelle

Новичок
Оптимальное решение, если ты программист - твоя голова + твои руки + google (yandex)
 

sevalery

Новичок
Я хочу определится каким путем пойти! Мысли в слух!
Когда-то я сделал карусель предложений, оказалось есть скрипт который выполняет туже функцию типа NewsTop, есть минус: нужно готовить предложения (участие программиста).
Есть очень простое решение ротатор банеров или фоток, но опять хотелось бы чтобы выбор проводился из данных БД без участия программиста.
Есть путь вместо №ID взятого из таблицы БД wish "специальное предложение", включить ротатор № ID - тут есть свои минусы.
Хочу чтобы ротация происходила без перезагрузки, одним запросом, можно на jQuery с использованием БД.
На jQuery я построил графики макс. мин. цены 1кв.м, сделал неплохую сортировку таблиц с поиском через пробел, подсказки и т.д..
 

sevalery

Новичок
Где конкретно из этих подзадач есть проблема?
Выполнил запрос на вывод данных 20 предложений.
Вот код (шаблон .tpl):
PHP:
        {if $wish == ''}		
        {else}
        {foreach from=$show_wish item=i}
<div id="special">
<div class="est">{$i.id}</div><div class="est">{$i.tarea}</div>
<div class="est-cm">{$i.price}</div><div class="est-cm">{$i.nedv} </div>
<div class="est-ct">{if $i.images_thumb ==''}<a href="{$i.site_url}index.php?action=detalis&id={$i.id}"><img src="{$path_templates}images/no_pic.png" align="center" border="0" hspace="10"></a> {else}<a href="{$i.site_url}index.php?action=detalis&id={$i.id}"><img class="block" src="{$url_site}{$upload_dir}thumb/{$i.images_thumb}" align="center" border="0" hspace="10"></a>{/if}</div>
<div class="est-cm">{$i.settlement}</div><div class="est-cr">{$i.region}</div>
<div class="est-cn">{$i.street}</div><div class="est-cb">Добавлено:&nbsp;{$i.date|date_format:"%d.%m.%Y"}</div>
</div>
        {/foreach}
        {/if}
Как отобразить их в виде автоматической смены предложений?
Есть вариант "аккордеона". - ручное управление.
Есть вариант разбиения на страницы (1 предложение = 1 страница) с кнопками < и >.
Смены предложений ручная при нажатии кнопок < и >.
Как в данном случае сделать ротацию? Интересует принцип.
 

С.

Продвинутый новичок
Давай ты сначала придумаешь ротацию, а потом начнешь ее реализовывать. А одновременно конечно у тебя не получится. Как можно запрограммировать то, не знаю что?
 

sevalery

Новичок
Оптимальное решение, если ты программист - твоя голова + твои руки + google (yandex)
Нашел оптимальное решение в google + твоя голова + твои руки!!
Если интересно нашел s3Slider jQuery plugin, прикрутил к MySQL Супер!!! работает во всех Браузерах
источник: http://www.serie3.info/s3slider/index.php
Все!
 

Armageddance

Новичок
Вот тебе почти готовая клиентская версия скрипта, пользуйся на здоровье, не забыв подключить jquery:

PHP:
var rotator = setInterval(function(){//генерируем функцию которая будет каждые 10 секунд отправлять запрос php-скрипту на сервер.
var count_id;//count_id - количество специальных предложений, хранящееся в твоей базе, это число можно либо запросом из mysql получать и напрямую вписывать в javascript
var random_id1=Math.floor(Math.random()*count_id);//генерируем случайные id от 1 до максимального из тех, что есть в твоей базе.
var random_id2=Math.floor(Math.random()*count_id);
var random_id3=Math.floor(Math.random()*count_id);
var random_id4=Math.floor(Math.random()*count_id);
var random_id5=Math.floor(Math.random()*count_id);
var random_id6=Math.floor(Math.random()*count_id);
var random_id7=Math.floor(Math.random()*count_id);
var random_id8=Math.floor(Math.random()*count_id);
var random_id9=Math.floor(Math.random()*count_id);
var random_id10=Math.floor(Math.random()*count_id);
var querystringonline="action=select&id1="+random_id1+"&id2="+random_id2+//.... и так далее - отправляем запрос скрипту, который будет запрашивать нужные id из mysql и возвращать по ним информацию
$.ajax({

    url: "rotator.php",
   	type: "get",
   	dataType: 'json',
   	data: querystringonline,
   	beforeSend: function (){
   	},
   		success: function(data){
for(var i=0; i<data.foto.length; i++)
    {
$('#special_offers').append("<img src="+data.foto[i]+"><p>"+data.price[i]+"</p>");//вставляются цена и фото для всех 10 предложений в цикле, остальные данные по аналогии допишешь.
    }
    if(data.foto.length==0) 
    {
        $('#special_offers').html("<p>Нет специальных предложений!</p>");
    },	
   	complete: function(){

   	}
   }); 
},10000
);
 

Armageddance

Новичок
Что касается серверной части, вносишь все приходящие id в один массив и запрашиваешь одним запросом инфу из базы для всех десяти id либо же делаешь для каждого id 10 запросов в цикле. Само собой, первый способ правильнее ибо менее грузит базу. Затем результат выборки вносишь в новый массив и в конце его обрабатываешь функцией JSON_ENCODE().
 
Сверху