Вывод данных из БД посредством цикла

Печать RSS
184

Автор
Пишу, строю и воображаю
0
Привет! У меня в базе хранятся 10 фотографий юзера, и храню их я в поле: photo1,photo2...photo10... Фотки загружаются, динамично удаляются, перемещаются... В итоге получается что не обязательно там 10 фоток и не обязательно они идут 1,2,3,4...10..

Вывожу я их вот таким образом..:
if($cardata[photo1]){echo'<img alt="" src="/image/big/'.$cardata[photo1].'" />';}
if($cardata[photo2]){echo'<img alt="" src="/image/big/'.$cardata[photo2].'" />';}
и так до 10ти...

ЧТобы не писать 10 раз иф иф иф... нельзя это через цикл провести изначально проверив СКОЛЬКО фотографий и пустить по этой сумме цикл... Помогите реализовать

Землянин
0
если у тебя имена полей похожие, то можно сделать цикл с $i и проверять существование фото 'photo'.$i

Оранжевые штаны
0
считай кол-во не пустых ячеек в бд

дальше через for выводи нужное кол-во фоток

Землянин
0
а вообще - почему бы не создать отдельную таблицу с фотографиями? тогда все намного проще будет
Н

Пацак
0
<?php
for($i=1;$i<11;$i++){
if(array_key_exists('photo'.$i,$cardata)){
echo'<img alt="" src="/image/big/'.$cardata['photo'.$i].'" />';

}
}
?>
А вообще, это брет так хранить фотографии юзера!
$cardata[photo1] - так писать очень плохо, так как сначала интерпритатор будет искать константу с именем photo1. Ключ надо указывать в кавычках для ассоциативного массива.
Изменил: Назар (02.11.2012 / 21:03)
Автор
Пишу, строю и воображаю
0
2, золотой ты человек!)))

я вот искал вот это:

for($i=1;$i<=10;$i++){
	if($cardata['photo'.$i]){

Я не знал как привязать к полю ЧИСЛО 1,2,3 которые даются из цикла... )))

А то приходилось писать иф по 10 раз, а так можно 1 раз, $i считает сам до 10ти... я делал [photo][$id], ['photo'][$i] и много по разному... никак не получалось)))

3, спасибо уже решил!)

4, я тебе поставлю + как пройдет время, я сег уже поставил...

Оранжевые штаны
0
Moto-Moto (2 Ноября 2012 / 20:43)
Привет! У меня в базе хранятся 10 фотографий юзера, и храню их я в поле: photo1,photo2...photo10... Фотки загружаются, динамично удаляются, перемещаются... В итоге получается что не обязательно там 10 фоток и не обязательно они идут 1,2,3,4...10..

Вывожу я их вот таким образом..:
if($cardata[photo1]){echo'<img alt="" src="/image/big/'.$cardata[photo1].'" />';}
if($cardata[photo2]){echo'<img alt="" src="/image/big/'.$cardata[photo2].'" />';}
и так до 10ти...

ЧТобы не писать 10 раз иф иф иф... нельзя это через цикл провести изначально проверив СКОЛЬКО фотографий и пустить по этой сумме цикл... Помогите реализовать
<?
for($i=0;$i<10;$i++){
if(!empty($cardata['photo'.$i])){echo'<img alt="" src="/image/big/'.$cardata['photo'.$i].'" />';}
}

}



Изменил: Николай (02.11.2012 / 21:03)
Автор
Пишу, строю и воображаю
0
7, я почти также делаю... вот

for($i=1;$i<=10;$i++){
	if($cardata['photo'.$i]){
		echo'<a href="/image/biggest/'.$cardata['photo'.$i].'" target="_blank"><img alt="" src="/image/big/'.$cardata['photo'.$i].'" /></a>';
	}
}

P.S. кстати почему цикл все начинают с 0? например в моём случае когда есть поля фото1...фото10 - лучше же использовать цикл с 1 по 10

Землянин
0
8: Moto-Moto, c чего начинать цикл - это уже тебе решать) для каждой ситуации можно делать по-разному) можно и с 10 начать, с $i--, или вообще делать с постусловием =)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск