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 :: Помогите пожалуйста новичку!

 PHP.SU

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


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

> Описание: Сократить условие
evgenijj369
Отправлено: 15 Декабря, 2015 - 13:59:45
Post Id


Новичок


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


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




Доброго времени суток!
Прошу помочь, кому не сложно!

На странице вывожу случайные картинки из одной папки, в 10-ти блоках.
К каждой случайно выведенной картинке нужно присвоить свою ссылку.
Делаю следующее...

if($image_1 == '1.png')
{
$link_image_1 = '1.php';
}

if($image_2 == '1.png')
{
$link_image_2 = '1.php';
}

if($image_3 == '1.png')
{
$link_image_3 = '1.php';
}

И так далее... Получается что к каждой картинке 10 условий пишет, а картинок несколько десятков.

Как всё это дело объединить, чтобы код был не таким длинным?!
Заранее благодарен!
 
 Top
Denkill
Отправлено: 15 Декабря, 2015 - 14:24:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $img = array('1.png', '2.png', '3.png');//Массив с названием картинок.
  3. $array_value = array();//Массив с ссылками.
  4. foreach ($img as $key => $value) {
  5.         $a = explode(".", $value);
  6.         $array_value[$key] = $a[0].".php";
  7. }
  8. print_r($array_value);
  9. ?>

(Отредактировано автором: 15 Декабря, 2015 - 14:27:06)



-----
Хо-Хо-Хо
 
 Top
evgenijj369
Отправлено: 15 Декабря, 2015 - 14:27:33
Post Id


Новичок


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


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




Спасибо большое, но я не на столько силён, чтобы разобраться в этом((( Я только учусь.
 
 Top
Denkill
Отправлено: 15 Декабря, 2015 - 14:35:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


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




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


-----
Хо-Хо-Хо
 
 Top
evgenijj369
Отправлено: 15 Декабря, 2015 - 14:48:57
Post Id


Новичок


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


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




Тут я всё упростил, чтобы понятнее было. На самом деле там всё сложнее... В общем нужно со своей картинкой выводить свою ссылку, но картинки берутся из папки и выводятся случайным образом. Картинки и ссылки имеют свои (разные) имена, а кроме ссылок к картинкам ещё будут title, alt и т.д... Вы уж не ругайтесь на меня, если что-то не так объясняю и туплю. Огорчение

(Отредактировано автором: 15 Декабря, 2015 - 14:55:35)

 
 Top
Denkill
Отправлено: 15 Декабря, 2015 - 14:58:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


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




Тогда вот так.
PHP:
скопировать код в буфер обмена
  1. <?
  2. $dir = "/img"; //Название папки
  3. $array_value = array();//Массив с ссылками.
  4. $file = scandir($dir);
  5.         foreach ($file as $key => $value){
  6.             if(is_file($value)){
  7.                 $a = explode(".", $value);
  8.                 $array_value[$key] = $a[0].".php";
  9.             }  
  10.         }  


-----
Хо-Хо-Хо
 
 Top
popover
Отправлено: 15 Декабря, 2015 - 15:04:27
Post Id



Новичок


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


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




evgenijj369, все тупили, это нормально.

Посмотрите, почитайте про базы данных, что они из себя представляют и как с ними работать. Решение задачи простое: записываете в базу картинки, к ним тайтлы и прочее (пишем не саму картинку, а путь до неё), далее как-то так


PHP:
скопировать код в буфер обмена
  1. $mysql = mysql_connect(/* ... */);
  2. $query = mysql_query('select * from Images');
  3. while($row = mysql_fetch_assoc($query))
  4. {
  5.     var_dump($row);
  6. }


mysql
 
 Top
evgenijj369
Отправлено: 15 Декабря, 2015 - 15:06:13
Post Id


Новичок


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


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




Базы нет)))
 
 Top
popover
Отправлено: 15 Декабря, 2015 - 15:07:30
Post Id



Новичок


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


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




evgenijj369, а что есть?)
 
 Top
evgenijj369
Отправлено: 15 Декабря, 2015 - 15:16:47
Post Id


Новичок


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


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




Только файлы))) Чисто информационный ресурс.
(Добавление)
Я правильно понял, что таким же образом, которым я вывожу картинки из папки, мне нужно выводить ссылку из файла со списком ссылок?
 
 Top
Denkill
Отправлено: 15 Декабря, 2015 - 15:22:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


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




evgenijj369, да.


-----
Хо-Хо-Хо
 
 Top
evgenijj369
Отправлено: 15 Декабря, 2015 - 15:25:53
Post Id


Новичок


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


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




Если не трудно, дайте пример в полном объёме! Откуда берём и как выводим, чтобы я полную картину увидел.
 
 Top
Denkill
Отправлено: 15 Декабря, 2015 - 15:33:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $dir = "/img"; //Название папки
  3. $array_value = array();//Массив с ссылками.
  4. $file = scandir($dir);
  5.         foreach ($file as $key => $value){
  6.             if(is_file($value)){
  7.                 $a = explode(".", $value);
  8.                 $array_value[$key] = $a[0].".php";
  9.             }  
  10.         }
  11.  
  12. foreach ($array_value as $key => $value) {
  13.         echo "<a href='".$array_value[$key]."'><img src='".$file[$key]."'></a>";
  14. }  


-----
Хо-Хо-Хо
 
 Top
evgenijj369
Отправлено: 15 Декабря, 2015 - 15:39:11
Post Id


Новичок


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


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




Denkill, огромнейшее спасибо! Теперь разберусь.
(Добавление)
Уже стыдно писать((( Не получилось у меня объединить это всё в свой код.
Картинки выводят вот таким образом у меня.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. //указываем папки с изображениями
  3. $folder_mas = array('images/river','images/clouds','images/mountains');
  4. $images = array();
  5. //выбираем случайную папку
  6. $folder = $folder_mas[rand(0,2)];
  7. $all_files = scandir($folder);
  8. while ($i++ < sizeof($all_files)){
  9.    //выбираем только изображения с расширением .png, .jpg и .gif
  10.    if (!strstr($all_files[$i],".png") and !strstr($all_files[$i],".jpg") and
  11.    !strstr($all_files[$i],".gif")) continue;
  12.    array_push($images, $all_files[$i]);
  13. }
  14. //выбираем случайное изображение из папки
  15. $img_random = $images[rand(0,sizeof($images)-1)];
  16. $img_src = $folder."/".$img_random;
  17. echo '<img src="'.$img_src.'" alt="">';
  18. ТУТ НУЖНА ССЫЛКА
  19. ТУТ НУЖЕН TITLE
  20. ?>


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

(Отредактировано автором: 15 Декабря, 2015 - 18:58:04)

 
 Top
Denkill
Отправлено: 15 Декабря, 2015 - 20:18:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $folder_mas = array('images/river','images/clouds','images/mountains');
  3. $dir = $folder_mas[rand(0,2)]; //Название папки
  4. $array_value = array();//Массив с ссылками.
  5. $file = scandir($dir);
  6.         foreach ($file as $key => $value){
  7.             if(is_file($value)){
  8.                 $a = explode(".", $value);
  9.                 $array_value[$key] = $a[0].".php";
  10.             }  
  11.         }
  12.  
  13. foreach ($array_value as $key => $value) {
  14.         echo "<a href='".$array_value[$key]."'><img src='".$file[$key]."'></a>";
  15. }  


-----
Хо-Хо-Хо
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Прочее »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB