Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MySQL и баннеры
 
 автор: Ziq   (21.03.2005 в 07:26)   письмо автору
 
 

У меня возникла такая идея, а вот как ее осуществить ее пока не знаю. Вся идея заключается в том, что в зависимости от адреса страница загружается определенный баннер. Помогите, пожалуйста. Да и еще, это не будет занимать много времени, а то на сайте делается упор на скорость. Заранее спасибо.

   
 
 автор: cheops   (21.03.2005 в 09:56)   письмо автору
 
   для: Ziq   (21.03.2005 в 07:26)
 

Хм... нужно больше информации, по зависимости вида баннера от адреса страницы, показываются ли баннеры сейчас, т.е. имеется ли у вас готовая система или вы её хотите делать с нуля?

   
 
 автор: Ziq   (22.03.2005 в 07:02)   письмо автору
 
   для: cheops   (21.03.2005 в 09:56)
 

Вся проблема, что делать ее нужно с нуля. И я не знаю, как мне узнать адрес страницы на которой сейчас пользователь. Смысл такой, я создаю таблицу к примеру с 3 олонками

create table banner (
id_bann int (1) not null auto_increment primary key, // первичный ключ
address text not null, // адресс страницы
number int (1) not null, // номер баннера

Потом мне необходимо узнать адрес текущей страницы сайта и взять его из поля address. Строк получится несколько и баннеров соответственно тоже несколько, тут я и использую строку number(номер баннера). Этот номер означает размер и расположение баннера (например number=1 соответствует баннеру 468х60 в верху страницы. А у Вас я хочу узнать, как мне узнать адрес текущей страницы (для извлечения из базы), ну и какие-то советы и предложения.

   
 
 автор: Valeri   (22.03.2005 в 07:42)   письмо автору
 
   для: Ziq   (22.03.2005 в 07:02)
 

а не прще на каждую страницу проинклудить свой банер ?

   
 
 автор: Ziq   (22.03.2005 в 07:44)   письмо автору
 
   для: Valeri   (22.03.2005 в 07:42)
 

Что такое проинклудить?

   
 
 автор: Valeri   (22.03.2005 в 07:48)   письмо автору
 
   для: Ziq   (22.03.2005 в 07:44)
 

у тебя страниц много ?
и на каждую должен быть свой банер ?

   
 
 автор: Ziq   (22.03.2005 в 07:49)   письмо автору
 
   для: Valeri   (22.03.2005 в 07:48)
 

Страниц предпологается около 3000. Да на каждую страницу свой баннер и не один.

   
 
 автор: Valeri   (22.03.2005 в 07:54)   письмо автору
 
   для: Ziq   (22.03.2005 в 07:49)
 

тоды это дело не пойдет.
вообщ то в таблицу скорее всего надо заносить не номер банера а его код.

   
 
 автор: Ziq   (22.03.2005 в 07:55)   письмо автору
 
   для: Valeri   (22.03.2005 в 07:54)
 

Слушай Valeri, а ты в курсе, как определить страницу на которой сейчас пользователь? Для поле address

   
 
 автор: Valeri   (22.03.2005 в 08:04)   письмо автору
 
   для: Ziq   (22.03.2005 в 07:55)
 

адрес текущей страницы определяется $_SERVER['PHP_SELF']
если адрес http://site.ru/test.php
то $_SERVER['PHP_SELF'] будет test.php

   
 
 автор: Valeri   (22.03.2005 в 08:13)   письмо автору
 
   для: Valeri   (22.03.2005 в 08:04)
 

вообще по идеи все это должно выглядить так

<?
$str 
$_SERVER['PHP_SELF'];
$row mysq_query("SELECT * FROM table WHERE address='$str'");
$res mysql_fetch_array($row);
$kod $res['number'];
echo 
"$kod";
?>

ну это для одного банера, а если их несколько то дело техники

   
 
 автор: cheops   (22.03.2005 в 09:36)   письмо автору
 
   для: Ziq   (22.03.2005 в 07:02)
 

Имя страницы можно опеределить, обратившись к серверной переменной $_SERVER['PHP_SELF'].

PS Возможно вас заинтересует тема http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=691

   
 
 автор: Ziq   (22.03.2005 в 22:13)   письмо автору
 
   для: cheops   (22.03.2005 в 09:36)
 

С предыдущей проблемой с помощью общих усилий я разобрался, но появилась новая. Подскажите, пожалуйста, ее решение. В базе данных есть два поля, первое дата ныняшняя, а второе дата + X дней, по прошествии которых баннер должен удалиться. Первое поле заполняется легко с помощью функции

$data = date ("YmdHis");

А как к этой дате прибавить, скажем, 15 дней?

   
 
 автор: cheops   (22.03.2005 в 22:34)   письмо автору
 
   для: Ziq   (22.03.2005 в 22:13)
 

Для заполнения текущей даты лучше воспользоваться встроенной функцией MySQL - NOW() http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=656 - она помещает в базу данных текущую дату.
INSERT INTO tbl VALUES (0, NOW())

При использовании этой функции очень легко добавить X=15 дней, при помощи конструкции следующего вида
INSERT INTO tbl VALUES (0, NOW(), NOW() + INTERVAL 15 DAY)

   
 
 автор: Ziq   (23.03.2005 в 06:28)   письмо автору
 
   для: cheops   (22.03.2005 в 22:34)
 

Cheops не подскажете сайт с хорошим пособием по MySQL. И скажите, что обозначает слово INTERVAL.

   
 
 автор: cheops   (23.03.2005 в 12:36)   письмо автору
 
   для: Ziq   (23.03.2005 в 06:28)
 

1) На самом деле очень хороший турториал входит в состав официальной документации по MySQL (читать следует с главы 3). Мало кто знает, но на сайте MySQL имеется мануал на русском языке http://dev.mysql.com/doc/mysql/ru/index.html - единственный его недостаток - он безнадёжно устарел по сравнению с английской версией, но для изучения MySQL 4.0.x подходит идеально.

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=2574

   
 
 автор: cheops   (23.03.2005 в 12:37)   письмо автору
 
   для: Ziq   (23.03.2005 в 06:28)
 

2) INTERVAL - это ключевое слово при помощи которого можно указать что мы будем вычитать или складывать - дни, часы, года...

   
 
 автор: Ziq   (23.03.2005 в 21:31)   письмо автору
 
   для: cheops   (23.03.2005 в 12:37)
 

Как мне теперь удалять баннеры по прошествии времени? У меня есть дата установки и дата окончяния или количество дней (что лучше не знаю? подскажите!). Как мне теперь составить sql запрос, чтобы удалить баннеры.

   
 
 автор: cheops   (24.03.2005 в 00:43)   письмо автору
 
   для: Ziq   (23.03.2005 в 21:31)
 

Необходимо дествовать примерно следующим образом:
DELETE FROM tbl WHERE remove_date < NOW()

Здесь из таблицы tbl удаляются записи чьё поле remove_date (дата окончания срока) меньше чем сегодняшнее число.

   
 
 автор: Ziq   (24.03.2005 в 06:59)   письмо автору
 
   для: cheops   (24.03.2005 в 00:43)
 

Спасибо тебе cheops, а я начал мудрить вычитать и тд. Еще раз спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования