X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

3 страниц V  < 1 2 3 >
Открыть тему
Тема закрыта
> Положение элемента в массиве
Kuchuluk
Kuchuluk
Topic Starter сообщение 23.5.2013, 1:01; Ответить: Kuchuluk
Сообщение #12


Ну так если не существует элемента массива n+1, то текущее изображение крайнее. Так же само с n-1

так id картинок не по порядку идут, а в зависимости от id пользователя, загрузившего эту картинку. в таблице с картинками есть еще поле user_id, по которому и идет выборка. Поэтому id картинок могут быть 40, 34, 21, 16 и тд
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Гость_0_* Гость_0_*
сообщение 23.5.2013, 1:09; Ответить: Гость_0_*
Сообщение #13


Можно создать новый массив, где будет по-порядку
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 23.5.2013, 1:12; Ответить: isvetlichniy
Сообщение #14


нет, мне не надо на существование проверить.


как раз таки надо проверять. а как это сделать тут уже масса вариантов.
допустим так
у тебя есть массив в виде
$allarr[0]["id"] = 1
$allarr[1]["id"] = 2
$allarr[2]["id"] = 3
$allarr[3]["id"] = 4

первый элемент - тут все ясно $allarr[0]["id"]
последний элемент можно получить вот так
$count = count($allarr);
$lat_item = $allarr[$count-1]["id"]

я думаю этих данных должно тебе хватить
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 23.5.2013, 1:13; Ответить: Kuchuluk
Сообщение #15


Можно создать новый массив, где будет по-порядку

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

а вообще двумерный массив можно упростить до одномерного?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Гость_0_* Гость_0_*
сообщение 23.5.2013, 1:19; Ответить: Гость_0_*
Сообщение #16


[member=Kuchuluk], перебором с помощью foreach добавлять в новый массив новый элемент
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 23.5.2013, 1:23; Ответить: Kuchuluk
Сообщение #17


я думаю этих данных должно тебе хватить

не хватит. мне надо еще знать сколько именно картинок есть до и после, потому что под большой картинкой снизу выводятся еще миниатюрки по 9 штук
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
html-ka
html-ka
сообщение 23.5.2013, 7:37; Ответить: html-ka
Сообщение #18


а документацию почитать религия не позволяет, изобретатели велосипедов? :)
array_shift — Извлекает первый элемент массива
array_pop — Извлекает последний элемент массива
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kuchuluk
Kuchuluk
Topic Starter сообщение 23.5.2013, 8:07; Ответить: Kuchuluk
Сообщение #19


всем спасибо за наводки, я уже сделал, работает нормально
public function photoStroka($page,$login)
  {
   $allarr = $this->selAssoc("users_images","id","user_login = '{$login}' ORDER BY id DESC"); //выбираю из БД все id, где поле user_login равно логину пользователя
   $arrsize = sizeof($allarr);//считаю количество эл-тов массива, то есть кол-во фоток
   // если их количество больше 9, то вывожу по 9 на страницу и устанавливаю где надо стрелки, иначе просто вывожу все
   if ($arrsize > 9)
   {
    foreach ($allarr as $all)
    {
     foreach ($all as $key => $value)
     {
      $allid[] = $value;
     }
    }
    $key = array_search($page,$allid);
    $elem = $key + 1;
    if ($key >= 5)
    {
     $lim1 = $elem - 5;
    }
    else
    {
     $lim1 = 0;
    }
    $pharr = $this->selAssoc("users_images","id, image_name","user_login = '{$login}' ORDER BY id DESC LIMIT {$lim1}, 9");
    foreach($pharr as $d)
    {
     $text = $text."<a href='photos.php?login={$login}&photo=".$d["id"]."'><img src='../party/users-images/".$d["id"].$d["image_name"]."'></a>";
    }
    echo "<p id='photo-stroka'>".$text."</p>";
   }
   else
   {
    $pharr = $this->selAssoc("users_images","id, image_name","user_login = '{$login}' ORDER BY id DESC LIMIT 0, 9");
    foreach($pharr as $d)
    {
     $text = $text."<a href='photos.php?login={$login}&photo=".$d["id"]."'><img src='../party/users-images/".$d["id"].$d["image_name"]."'></a>";
    }
    echo "<p id='photo-stroka'>".$text."</p>";
   }
  }
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 23.5.2013, 9:34; Ответить: isvetlichniy
Сообщение #20


array_shift — Извлекает первый элемент массива array_pop — Извлекает последний элемент массива

Изобретатель, фукнции не получают, а извлекают элементы, то есть массив уже будет измененным
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 23.5.2013, 10:26; Ответить: fedornabilkin
Сообщение #21


[member=Kuchuluk], как-то все это у тебя громоздко получилось очень.
$sql = "SELECT ......."; // запрос
$query = mysql_query($sql); // выполнение
$rows = mysql_num_rows($query); // количество строк
if( $rows > 9 ){
    while( $row = mysql_fetch_assoc($query) ){
        $allid[] = $row['']; // что, необходимо добавить айди и т.д.
        // если надо, можно еще массив собрать, но наверно не надо
        // для верности можно сделать счетчик и явно индексировать массив
    }
}
//////////////////
// но я бы сделал немного иначе
$i = 0;
while( $row = mysql_fetch_assoc($query) ){
    $i++;
    if( $i == 1 ){
        $html .= "Первая картинка, значит без левой кнопки";
    }
    elseif( $i == $rows ){
        $html .= "Последняя картинка, значит без правой кнопки";
    }
    else{
        $html .= "Очереднаякартинка, значит обе кнопки";
    }
}
// в этом же цикле можно и миниатюры собрать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V  < 1 2 3 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) При удалении одного элемента, перестает работать другой. Помогите исправить!
1 vantusxyz 5570 24.6.2016, 16:08
автор: -Degradator-
Открытая тема (нет новых ответов) Как подстроить 3 разные элемента в один ряд
2 Генрих Арутюнян 5539 19.2.2015, 10:43
автор: -Генрих Арутюнян-
Открытая тема (нет новых ответов) Нубский вопрос про растягивание дивов и положение в нем элементов
7 Licoric 7661 11.8.2010, 5:43
автор: -Alcorn-
Открытая тема (нет новых ответов) как задать положение рисунка
11 cosonic_hb 31087 19.12.2009, 16:11
автор: -AndreySmith-
Открытая тема (нет новых ответов) Абсолютное положение
4 Martins_hb 7051 29.6.2009, 2:38
автор: -goshikvia-


 



RSS Текстовая версия Сейчас: 29.3.2024, 17:32
Дизайн