Как сделать подскажите!
Делаю так не работает Desc выбирает последнюю фотку этого пользователя:
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$user' AND id!='$id'",$link);
$row=mysql_fetch_array($resko);
$next = $row["id"];
Спустя 10 минут, 20 секунд (30.01.2010 - 00:46) Ice написал(а):
щас смутно соображаю, но что если
Или там айдишник не цифровой?
AND id = $id + 1
Или там айдишник не цифровой?
Спустя 11 минут, 36 секунд (30.01.2010 - 00:58) web-monster написал(а):
Цифровой но дело в том что id для этого пользователя могут идти 1,3,19,25 и.т.д
Подробнее:
есть user1, user2, user3
все грузят фотки
user1 загрузил вчера с id 5, после него остальные ещё грузили, и вот сегодня он ещё грузит но уже id 17 к примеру.
Вот нужно сделать чтобы по клике на фотку переключал на след. фотку по порядку
Подробнее:
есть user1, user2, user3
все грузят фотки
user1 загрузил вчера с id 5, после него остальные ещё грузили, и вот сегодня он ещё грузит но уже id 17 к примеру.
Вот нужно сделать чтобы по клике на фотку переключал на след. фотку по порядку
Спустя 4 минуты, 49 секунд (30.01.2010 - 01:03) dr_Lev написал(а):
$imageIndex = $_GET['imageIndex'];
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$user' LIMIT $imageIndex, 1",$link);
$row=mysql_fetch_array($resko);
$next = $imagesIndex+1;
Спустя 9 минут, 8 секунд (30.01.2010 - 01:12) web-monster написал(а):
Чёт не работает. Действия внутри while происходят)
$id = id фотки
$id = id фотки
$imageIndex = $id;
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$komy' LIMIT $imageIndex, 1",$link);
$rew=mysql_fetch_array($resko);
$next = $imagesIndex+1;
Спустя 5 минут, 21 секунда (30.01.2010 - 01:17) dr_Lev написал(а):
$imageIndex = 0
while(...){
............
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$komy' LIMIT $imageIndex, 1",$link);
$rew=mysql_fetch_array($resko);
$next = $row['id'];
$imageIndex++;
............
}
Спустя 9 минут, 31 секунда (30.01.2010 - 01:27) web-monster написал(а):
Скидывает на первый id всё время.
Конструкция вида:
Конструкция вида:
$imageIndex = 0;
while(.выбор фотки по id.){
............
$id Этой фотки
$komy кому эта фотка
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$komy' LIMIT $imageIndex, 1",$link);
$rew=mysql_fetch_array($resko);
$next = $rew['id'];
$imageIndex++;
//скидывает на id 1
<a href=photo?id=$next> следующая фотка</a>
............
}
Спустя 8 минут, 18 секунд (30.01.2010 - 01:35) dr_Lev написал(а):
Сори, не заметил название переменной...
Цитата |
$rew=mysql_fetch_array($resko); $next = $row['id']; |
замени на
Цитата |
$rew=mysql_fetch_array($resko); $next = $rew['id']; |
Спустя 2 минуты, 27 секунд (30.01.2010 - 01:38) web-monster написал(а):
Это я уже косякнул, там исправленно всё) Всё ровно не работает
Спустя 2 минуты, 31 секунда (30.01.2010 - 01:40) web-monster написал(а):
Я так понимаю что он прибавит только после выполнения скрипта, а нужно сразу чтобы +1 значение iD , при клике на следующий от того значения id переход на следующий.. А вообще незнаю) Бошка взрывается)
Спустя 20 минут, 43 секунды (30.01.2010 - 02:01) dr_Lev написал(а):
можешь дать полную картину цикла?
Спустя 1 час, 26 минут, 12 секунд (30.01.2010 - 03:27) sergeiss написал(а):
Извращенцы
Тут просто сделать.
Надо просто сказать БД, что хотим выбрать одну запись для определенного юзера, с id больше, чем текущий. Мы не указываем его в явном виде!!! А только говорим, что он больше текущего. А БД пусть сама определяет, какой он.
Если надо выбрать несколько id, то тогда надо еще сделать ORDER BY, и в лимите указать количество в явном виде.

select id, user from photo where user='current_user_name' and id > current_id limit 1
Надо просто сказать БД, что хотим выбрать одну запись для определенного юзера, с id больше, чем текущий. Мы не указываем его в явном виде!!! А только говорим, что он больше текущего. А БД пусть сама определяет, какой он.
Если надо выбрать несколько id, то тогда надо еще сделать ORDER BY, и в лимите указать количество в явном виде.
Спустя 8 часов, 6 минут, 22 секунды (30.01.2010 - 11:33) Shurick написал(а):
Если я верно вник в тему задачи - почему бы не добавить одну ячейку к примеру pos. при добавлении опеределенным пользователем pos+1
При выборке все будет проще
Для запроса можно передавать ид пользователя
<a href=photo?uid=$uid&?pos=$pos> следующая фотка</a>
я бы ид пользователя записал в сессию
ну эт как вариант...
list($pos)=$db->sql_fetchrow($db->sql_query("select max(pos) from `photo` where `user`=".$user));
$pos +=0; $pos++;
INSERT INTO `photo` (`user`, `pos`) VALUES ('".$user."', '".(int)$pos."')
При выборке все будет проще
select id, user from photo where user='current_user_name' and pos > current_pos limit 1
Для запроса можно передавать ид пользователя
<a href=photo?uid=$uid&?pos=$pos> следующая фотка</a>
я бы ид пользователя записал в сессию
ну эт как вариант...
Спустя 45 минут, 47 секунд (30.01.2010 - 12:19) web-monster написал(а):
sergeiss хороший метод работает, но что делать когда последний id фотки? Тогда следующая пустая... Как вернуть на начало?
Спустя 4 минуты, 58 секунд (30.01.2010 - 12:24) web-monster написал(а):
Сделал вот так:
Рабоатет) Правда в обратном порядке)
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$komy' and id > $id limit 1",$link);
$rew=mysql_fetch_array($resko);
$next = $rew['id'];
if($next == "")
{
$resko = mysql_query("SELECT id,user FROM photo WHERE user='$komy' ORDER by id ASC limit 1",$link);
$rew=mysql_fetch_array($resko);
$next = $rew['id'];
}
else
{
$next = $next;
}
Рабоатет) Правда в обратном порядке)
Спустя 4 минуты, 28 секунд (30.01.2010 - 12:29) sergeiss написал(а):
Shurick - а зачем еще одно поле в таблице, если уже есть id? Которые и так всегда идут в порядке возрастания? Да еще и автоинкрементные?
Тогда получаем, что всё реализовано в одном "моём" запросе, а увеличение id происходит автоматически.
К тому же (очень существенно!) в "твоем" случае (через получение максимума и добавление к нему единицы) можно получить один нехороший "казус": у разных юзеров может оказаться один и тот же pos. Ситуация редкая, но возможная. А при использовании автоинкрементных полей эта проблема отсутствует (за счет "правильных" алгоритмов).
web-monster - а ты подумай
Если айди был уже последний, то что получим? Правильно, пустой ответ, в котором нету ни одной строки.
Тогда надо составить другой запрос, возвращающий айди фотографии, минимальный для данного пользователя.
PS. Пока я писал, ты уже сделал
Это хорошо.
Только больее правильно будет проверять айди не на равенство пустой строке, а смотреть именно количество строк.
И $next=$next - это полный "индуизм"
Убери этот else вообще.
Тогда получаем, что всё реализовано в одном "моём" запросе, а увеличение id происходит автоматически.
К тому же (очень существенно!) в "твоем" случае (через получение максимума и добавление к нему единицы) можно получить один нехороший "казус": у разных юзеров может оказаться один и тот же pos. Ситуация редкая, но возможная. А при использовании автоинкрементных полей эта проблема отсутствует (за счет "правильных" алгоритмов).
web-monster - а ты подумай

Тогда надо составить другой запрос, возвращающий айди фотографии, минимальный для данного пользователя.
PS. Пока я писал, ты уже сделал

Только больее правильно будет проверять айди не на равенство пустой строке, а смотреть именно количество строк.
И $next=$next - это полный "индуизм"

Спустя 8 минут, 29 секунд (30.01.2010 - 12:37) web-monster написал(а):
Да ты прав с else индуизм получился)))
Спасибо за помощь!
Спасибо за помощь!
