Всем привет, проблема такая есть скрипт по выводу баннеров. Но к сожалению так как идёт случайная выборка ссылки на изображение и ссылка на ресурс получается разная. Есть какой-нибудь вариант решения это проблемы Код Код (PHP): $sth = $dbh->prepare("SELECT banner_id,bannername,filename,url,comment FROM banners WHERE banner_conn='".$_GET['member']."' ORDER BY RAND() LIMIT 1"); $sth->execute(); $result = $sth->fetch(PDO::FETCH_ASSOC); if($result == true) { extract($result); if(isset($_GET['transmission'])) // Для ссылки { header("Location: ".$url); } else { header("Location: http://".$_SERVER["SERVER_NAME"]."/img/".$filename.""); } } else { echo 'Ошибка'; } Вид ссылки <a href="http://sait.ru/network.php?transmission=1&member=1" target="_blank"> <img src="http://sait.ru/network.php?member=1" border="0" /> </a> Добавлено спустя 50 минут 36 секунд: Подскажите решение. Как лучше передать сразу и ссылку и путь к баннеру?
Re: Баннерная сеть (Вывод ссылки отличается) У Вас адрес банера и адрес сайта, как хранятся ? В одной таблице или разных ?
Re: Баннерная сеть (Вывод ссылки отличается) В одной. Таблица banners. Поле filename - путь к картинке Поле url - Ссылка на сайт Поле banner_conn - Это поле по которому определяется количество баннеров для каждого сайта . Наприме для member = 1, имеется 6 баннеров; Для member = 2, три баннера и т.п.
Есть таблица banners. В ней находятся 5 полей Таб.Banners Код (Text): Айди Айди юзера Название баннера Имя фаила Куда ссылаться banner_id banner_conn bannername filename url 1 1 Первый баннер banner1.gif http://1.ru 2 1 Второй баннер banner2.gif http://2.ru 3 1 Третий баннер banner3.gif http://3.ru 4 2 Четвёртый баннер banner4.gif http://4.ru 5 2 Пятый баннер banner5.gif http://5.ru Участник баннерной сети размещает у себя код: Код (Text): <a href="http://sait.ru/network.php?transmission=1&member=1" target="_blank"> <img src="http://sait.ru/network.php?member=1" border="0" /> </a> Где member это ID юзера, а transmission это переменная которая говорит отсносится этот запрос к ссылке или нет. Дальше в фаиле network.php идёт запрос к БД Код (Text): try { $dbh = new PDO ( 'mysql:host=' . HOST . ';dbname=' . DB, USER, PASSWORD); $dbh->query ( 'SET character_set_connection = '.SQLCHARSET ); $dbh->query ( 'SET character_set_client = '.SQLCHARSET ); $dbh->query ( 'SET character_set_results = '.SQLCHARSET ); } catch(PDOException $e) { die("Ошибка: ".$e->getMessage()); } $sth = $dbh->prepare("SELECT banner_id,bannername,filename,url,comment FROM banners WHERE banner_conn='".$_GET['member']."' ORDER BY RAND() LIMIT 1"); $sth->execute(); $result = $sth->fetch(PDO::FETCH_ASSOC); if($result == true) { extract($result); if(isset($_GET['transmission'])) { header("Location: ".$url); } else { header("Location: http://".$_SERVER["SERVER_NAME"]."/img/".$filename.""); } } else { echo 'Нет'; } Вот здесь и начинается сложность. При первом запросе (картинки) он случайно выбирает картинку из всех полей где banner_conn = $_GET['member'], а когда нажимаешь по ссылке он снова случанйно выбирает уже ссылку из всех полей где banner_conn = $_GET['member']. ВОПРОС: Как сделать по человеческий чтобы было вс одновременно) Заранее спасибо!
Здесь дело не в БД. Тут нужно пользователю еще в нагрузку давать файл с библиотекой, где метод будет обращяться к БД и рандомно выводить нормальный УРЛ и картинку банера ну или id банера и сайта к которому он отностися. Или тоже самой через JavaScript библиотеку делать.