Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод из базы mySQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
webog
Отправлено: 17 Мая, 2014 - 09:28:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Добра всем!

В базе есть таблица вида:

ID, url, img

1 | sait.ru | sait.ru/fine.jpg
1 | qwe.ru | qwe.ru/ert.jpg
1 | poiu.ru | poiu.ru/cgv.jpg

Т.е. ссылка связана с изображением. При редиректе на других сайтах страница обновляется еще раз и получается изображение тоже, а ссылка уже другая берется из базы. Получается вот так:

1-2
2-3
3-1

Хотя нужно:

1-1
2-2
3-3

Из базы беру так:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` WHERE id = '45' ORDER BY rand() LIMIT 1


Вопрос: Как сделать (или запомнить) ссылку привязанную к изображению!?.

Спасибо!
(Добавление)
У меня ротатор баннеров. Ссылка стоит в подписи на форуме. Показывается баннер номер 1. При нажатии на него идет редирект вида http://sait[dot]ru/redirector.php?url=http://сылка наша.
Когда открывается наша ссылка в этом окне или новом, то запрос в базу идет снова и показывается баннер номер 2, хотя нажимали на один.

Вот! Надеюсь не запутал.

Думал записывать в базу какой баннер показывать, но тоже что то не так...

Кто что думает?

Спасибо!


-----
Hello!
 
 Top
webog
Отправлено: 19 Мая, 2014 - 16:54:27
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Актуально! Есть идеи?


-----
Hello!
 
 Top
DKS
Отправлено: 20 Мая, 2014 - 10:02:02
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2014  
Откуда: Луганск, Украина


Помог: 0 раз(а)




webog пишет:
Т.е. ссылка связана с изображением. При редиректе на других сайтах страница обновляется еще раз и получается изображение тоже, а ссылка уже другая берется из базы. Получается вот так:

1-2
2-3
3-1

Хотя нужно:

1-1
2-2
3-3


Могу ошибаться, но несоответствие ссылок и картинок (баннеров и не только) может возникать из-за того, что браузер сохраняет изображения в кэше.

Вот это:
http://forum.php.su/topic.php?fo...41&topic=916
решение Вашей проблемы?


Под ником подписано у Вас "Покинул форум", а Вы - всё ещё здесь. Странно Не понял
 
 Top
webog
Отправлено: 20 Мая, 2014 - 10:10:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


DKS пишет:
решение Вашей проблемы?


Нет!

У меня ротатор баннеров. Ссылка стоит в подписи на форуме. Показывается баннер номер 1. При нажатии на него идет редирект вида http://sait[dot]ru/redirector.php?url=http://сылка наша.
Когда открывается наша ссылка в этом окне или новом, то запрос в базу идет снова и показывается баннер номер 2, хотя нажимали на один.

Вот! Надеюсь не запутал.


-----
Hello!
 
 Top
DKS
Отправлено: 20 Мая, 2014 - 11:44:53
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2014  
Откуда: Луганск, Украина


Помог: 0 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table` WHERE id = '45' ORDER BY rand() LIMIT 1


Сортировка по rand().

С самого начала сортируется случайным образом.
Потом, нажали на баннер номер один, перешли.
В процессе перехода - снова сортируется, но уже по новому.

Если я правильно понял, после перехода по ссылке получается как-то так

1-1 => 3-3
2-2 => 1-1
3-3 => 2-2

И к баннеру вместо нужной ссылки прикрепляется другая.
Потому что данные отсортированы уже иначе.

Я правильно Вас понял?


Если да, то Моё решение: не использовать rand(), сортировать по ID.
А случайный вывод генерировать уже средствами php.

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

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $r = mysql_query("SELECT * FROM `table` WHERE id = '45' ORDER BY ID");
  3. $array=mysql_fetch_array();
  4. $array=shuffle($array); // смешиваем отдельно
  5.  
  6. // и выводим всё вместе
  7. echo "<a href=\"$array['url']\"><img src=\"$array['img']\"></a>     ";
  8.  
 
 Top
webog
Отправлено: 20 Мая, 2014 - 13:25:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


DKS пишет:
Я правильно Вас понял?


Да. Наконец таки.

Пробую Ваш вариант.
(Добавление)
DKS, увы но Ваш вариант не работает.


-----
Hello!
 
 Top
DKS
Отправлено: 20 Мая, 2014 - 17:55:39
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2014  
Откуда: Луганск, Украина


Помог: 0 раз(а)




webog пишет:

DKS пишет:
Я правильно Вас понял?


Да. Наконец таки.

Понимаю Ваше желание, чтобы всё было быстро, качественно, бесплатно и почти телепатически.
Эх, хотел бы я быть телепатом. Это было бы гораздо удобнее.

webog пишет:

Пробую Ваш вариант.
(Добавление)
DKS, увы но Ваш вариант не работает.


Поправил код.
И оттестировал: создал базу данных, таблицу, ввёл Ваши данные.
При каждом обновлении страницы возникает баннер с соответствующей ему ссылкой. Что, как Я понимаю, и требовалось.

Работоспособный код получился такой:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. /* webog, ротатор баннеров */
  5.  
  6.  
  7. // Входные параметры
  8. $user_database = "test"; // имя пользователя
  9. $password_database = "123456"; // пароль
  10. $name_database = "test"; // название базы данных
  11. $name_table = "table"; // название таблицы
  12.  
  13.  
  14. // Подключаемся к MySQL через пользователя
  15. // логин и пароль которого у Вас есть
  16. if(!mysql_connect('localhost', $user_database, $password_database))
  17. {
  18.         // если не получилось
  19.         echo "Не могу подключится к серверу. <br>
  20.         ERROR ".mysql_errno().": ".mysql_error()."<br>";
  21.         exit;
  22. }
  23. // Выбираем базу данных
  24. mysql_select_db($name_database);
  25.  
  26. // Запрашиваем случайную запись по сути так же, как это делали и Вы
  27. $res = mysql_query("select * from `table` order by rand() limit 1");
  28.  
  29. // Обрабатываем запрос так, чтобы его понял PHP
  30. $arrayOfBanners = mysql_fetch_row($res);
  31.  
  32.  
  33. // Выводим баннер-ссылку
  34. echo "<a href=\"$arrayOfBanners[1]\"><img src=\"$arrayOfBanners[2]\"></a>     ";
  35.  
  36.  
  37. /* Тестирующий код, нагляднее показвает,
  38. что выводится в качестве данных
  39. (удалить, если всё работает как надо) */
  40. echo "<br> ".$arrayOfBanners[1]." <br>";
  41. echo $arrayOfBanners[2]." <br>";
  42.  
  43.  
  44. // Закрываем соединение
  45.  
  46.  
  47. ?>
  48.  
 
 Top
webog
Отправлено: 20 Мая, 2014 - 18:03:08
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Эх, зря писали! Не то! Но все равно спасибо!

Попытаюсь наглядно обьяснить!

_http://banner.ru/r/217 - наберите в браузере. Будет баннер.

_http://banner.ru/r/217/url - будет ссылка (переход по ссылке и открытие сайта)

Сколько раз не обновляй эту страницу _http://banner.ru/r/217/url она выведет ссылку на один и тот же баннер.

У меня сейчас так: загружен баннер 1, обновляем ссылку показывается ссылка и 1, и 2 и 3. Сколько раз обнови все равно будет другая ссылка.

P.S. За правильное решение - пиво!

(Отредактировано автором: 16 Июля, 2018 - 00:02:08)



-----
Hello!
 
 Top
DKS
Отправлено: 20 Мая, 2014 - 20:05:11
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2014  
Откуда: Луганск, Украина


Помог: 0 раз(а)




Ещё одна попытка Хорошо

Кажется, получилось:
1) при нажати на изображение переход осуществляется по ссылке, привязанной к нему
2) при введении адреса страницы редиректа каждый раз перенаправление осуществляется на новую страницу.

Сделал два файла: "с баннером" и файл редиректа.
Приведу коды, потом опишу принцип действия.

CODE (htmlphp):
скопировать код в буфер обмена
  1. /* Файл index.php, домент test */
  2. /* Тестовые параметры
  3. имитирующие загрузку из БД */
  4.  
  5. // Генерация случайного номера записи
  6.  
  7. $N = 3; // Количество записей в таблице
  8. $random = mt_rand(1, $N);
  9.  
  10. // Генерация одного из трёх url
  11. if ($random===1) $url="http://forum.php.su/" ;
  12. if ($random===2) $url="http://google.com";
  13. if ($random===3) $url="http://yandex.ru";
  14.  
  15. // Генерация одной из трёх картинок
  16. if ($random===1) $image="/random_image_file1.jpg" ;
  17. if ($random===2) $image="/random_image_file2.jpg";
  18. if ($random===3) $image="/random_image_file3.jpg";
  19.  
  20.  
  21. /* В своей задаче
  22. вместо $url и $image
  23. подставьте те значения,
  24. что получаются из выборки из базы данных */
  25.  
  26. // Переход на др. страницу. Для передачи url редиректу использовал форму.
  27. echo '
  28. <form action="/redirect.php" method="post">
  29.  <input type="hidden" name="url" value="'.$url.'">
  30.  <input type="image" src="'.$image.'">
  31. </form>
  32. ';
  33.  
  34. ?>



CODE (htmlphp):
скопировать код в буфер обмена
  1. Файл redirect.php, расположен по адресу test/redirect.php
  2. <?php
  3.  
  4. /* Проверяем, передан ли url из предыдущего скрипта или нет
  5. То есть узнаем кликнул ли по баннеру пользователь
  6. или же просто ввёл ссылку на страницу редиректа */
  7.  
  8. if (isset($_POST['url']))
  9. { // Если кликнул по баннеру, то...
  10. $url=$_POST['url']; // Копируем полученное значение адреса
  11. $_POST['url']=''; // Обнуляем его
  12. $caption = "Location: ".$url; // Формируем заголовок
  13. header($caption); // Собственно, редирект
  14. }
  15. else
  16. { // Если не кникнули по бару, а ввели адрес
  17.  
  18. $N = 3; // Количество записей в таблице
  19. $random = mt_rand(1, $N);
  20.  
  21. // Генерация одного из трёх url
  22. if ($random===1) $url="http://forum.php.su/" ;
  23. if ($random===2) $url="http://google.com";
  24. if ($random===3) $url="http://yandex.ru";
  25.  
  26. $caption = "Location: ".$url; // Генерируем новый адрес
  27. header($caption); // Собственно, редирект
  28. }
  29.  
  30. ?>
  31.  



1) Вводил http://test/ . В html коде видно, что при каждом обновлении этой страницы баннер и адрес, прикреплённый к нему, меняются.
2) Кликал по баннеру. Осуществлялся редирект на одну из трёх страниц (взял для примера этот сайт, гугл и яндекс).
3) Вводил адрес http://test/redirect.php в строку браузера. Практически каждый раз редирект осуществлялся на новую страницу (проверил несколько раз, один раз случилось так, что переход на гугл произошел пять раз подряд... испугался Не понял ... но в шестой раз переход произошел на яндекс и понял, что всё правильно Радость )

Если всё верно, то Вам остаётся только ввести свои названия переменных, свои данные и всё должно заработать.

Ничего не упустил?
 
 Top
webog
Отправлено: 21 Мая, 2014 - 09:17:07
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


DKS пишет:
Вводил адрес http://test/redirect.php в строку браузера. Практически каждый раз редирект осуществлялся на новую страницу


А нужно на ссылку ТОЛЬКО этого баннера.

Вообщем, я смотры Вы новичок!?. Не то.

Есть еще варианты, гуру? Гуру, Вы где?


-----
Hello!
 
 Top
DKS
Отправлено: 21 Мая, 2014 - 11:01:54
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2014  
Откуда: Луганск, Украина


Помог: 0 раз(а)




webog пишет:

А нужно на ссылку ТОЛЬКО этого баннера.

Вообщем, я смотры Вы новичок!?. Не то.

Есть еще варианты, гуру? Гуру, Вы где?


Ну что ж, ищите опытного.
Только они почему-то не захотели вам сразу помогать.
Видимо, знают вас.

В любом случае, удачи.
И душевного спокойствия.
А то я гляжу, вы напряжены невмеру.
 
 Top
webog
Отправлено: 21 Мая, 2014 - 11:04:14
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


DKS пишет:
Ну что ж, ищите опытного.
Только они почему-то не захотели вам сразу помогать.


Без обид, но Ваши решения не подходят.


-----
Hello!
 
 Top
webog
Отправлено: 27 Мая, 2014 - 10:08:53
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Актуально! За решение проблемы - отблагодарю $.


-----
Hello!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB