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
Форумы портала PHP.SU :: Версия для печати :: Вывод изображений в слайдер
Форумы портала PHP.SU » » Вопросы новичков » Вывод изображений в слайдер

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

1. elian - 28 Апреля, 2013 - 18:05:42 - перейти к сообщению
Добрый день. Не получается сделать так, что бы в каждом слайде выводилась по ИД картинка, например добавил картинку, ИД стало например 3 и она вывелась.
СЛайдер работает нормально, т.к. если делаю для каждой фото блок вывода то все норм, а мне надо что бы с бд выводило.
Вот кодНедовольство, огорчениеэто вставка пхп кода в хтмл коде, файл с пхп расширением, если что)
<div id="slider">
<?php
$i = $_GET['id'];
for($i=1;$i < 5; $i++){
echo "<div>
$path = 'img/';
$sql ='SELECT name FROM imgs WHERE id=$i';
$query = mysql_query($sql) or die(mysql_error());
while ($res = mysql_fetch_assoc($query)){
echo '<img src=\"" . $path . $res['name'] ."\">';}
</div>";
}
?>
Ещё раз повторяю, слайдер норм работает и отдельно от слайдер вывод фото с бд тоже норм работает, а если вместе то беда.
Я просто хочу сделать что б блок див повторялся сам циклом..
хелп плз, буду благодарен).
2. Dark-def - 28 Апреля, 2013 - 18:07:39 - перейти к сообщению
а что выводит?
3. elian - 28 Апреля, 2013 - 18:11:32 - перейти к сообщению
Оно даже ошибки режет пополам. Ничего разобрать нельзя.
4. Dark-def - 28 Апреля, 2013 - 18:14:33 - перейти к сообщению
Ну так поиграйтесь с размерами вашего блока. И проверьте пути к изображениям
5. Skycrafter - 28 Апреля, 2013 - 18:16:50 - перейти к сообщению
если правильно понял то, что бы вывести из бд сразу после добавления по id то поможет функция
mysqli_insert_id
http://www.php.net/manual/ru/mys...li.insert-id.php
6. elian - 28 Апреля, 2013 - 18:18:14 - перейти к сообщению
Но когда делал отдельно вывод из бд, без слайдера все норм было с путем, странно, ничего же не менял
7. Skycrafter - 28 Апреля, 2013 - 19:35:48 - перейти к сообщению
допустим у тебя поле id в базе автоинкремент,
в этой строке ты присваиваешь переменной $i значение которое будет соответствовать номеру id картинки в базе данных по которому вы будете вытаскивать эту самую картинку.
а в этой строке вы переписываете переменную $i задавая ей значения 1,2,3,4.

возможно запрос не срабатывает по тому что в таблице нет картинок с такими id/
8. elian - 28 Апреля, 2013 - 20:45:46 - перейти к сообщению
там 2 изображения, в первого ид = 1, во второго ид =2. Может я что то не так понимаю в коде, посоветуйте тогда как правильно.
9. Object - 28 Апреля, 2013 - 22:39:39 - перейти к сообщению
Вам нужно выводить имена файлов изображений из таблицы и если например там их 5 и в таблицу добавили 6-ю, то вывести в слайдер все 6 или все-таки только последнюю? А то Ваше сообщение и код какие-то противоречивые. Если нужны все изображения зачем передавать id одной картинки? Чего Вы прицепились к этому id? Зачем лупить в цикле 5 раз select? Можно выбрать все одним запросом, а потом в цикле выводить картинки в блоки. Ну и последнее, обычно слайдер делают через списки <ul> задавая стили.

PHP:
скопировать код в буфер обмена
  1. <div id="slider">
  2. <ul>
  3.     <?PHP
  4.         $path = 'img/';
  5.         $sql ='SELECT name FROM imgs';
  6.         $query = mysql_query($sql) or die(mysql_error());
  7.         while ($res = mysql_fetch_assoc($query)){
  8.         echo "<li><img src='{$path}{$res['name']}'></li>";
  9.         } ?>
  10. </ul>
  11. </div>


Как-то так.
10. elian - 29 Апреля, 2013 - 09:28:38 - перейти к сообщению
так то слайдер на работает, но изображения выводит.
(Добавление)
Все работает) спасибо большое).Но ещё одно, у меня щас только 2 изображения, а оно выводит весь слайдер этих 2 изображений, как сделать что б только 2 изображения были в слайдере?т.е. не повторялись, или слайдер это как замкнутое коло?
11. Object - 29 Апреля, 2013 - 12:12:06 - перейти к сообщению
У Вас формулировка вопросов это ... ужас.

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

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `name` FROM `imgs`
  2. ORDER BY `id` DESC
  3. LIMIT 0, 5;


Будет выводить только 5 картинок, включая последнюю добавленную, только из-за сортировки первой картинкой в слайдере будет последняя добавленная в базу, второй предпоследняя и т.д., но пересортировать можно уже в php. Это как-бы простой вариант, а можно считать количество записей в таблице с изображениями, считать сдвиг и выводить последние 5, тогда не нужно пересортировывать в пыхе.

P.S. Вообще-то php скрипт должен выводить все изображения, только не все отображать, а вот "крутить" карусель (слайдер) нужно уже с помощью javascript. ну это при нормальной реализации.

 

Powered by ExBB FM 1.0 RC1