|
Тема
|
galeria
|
|
Автор | cveti (Нерегистриран) |
Публикувано | 31.01.07 14:48 |
|
Здравейте!
Направих уеб галерия в база данни с mysql. Сега искам като отворя някоя снимка да се появяват бутони напред и назад и така да се разгледат всички снимки в галерията. За съжаление не мога да се сетя как в заявката да определя предишната и следващата снимка. Ясно ми е, че трябва да използвам id-то, но..... толкова.
Ще се радвам, ако някой ми помогне.
| |
Тема
|
Re: galeria
[re: cveti]
|
|
Автор | zzzzzzzzzzzzz (Нерегистриран) |
Публикувано | 31.01.07 15:36 |
|
LIMIT offset, row_count
или в твоя случай
LIMIT $_GET['image_id'],$_GET['image_id']+1
За следваща снимка
| |
|
това само ако $имаге_ид съдържа строго последователни стойности, което в общия случай лесно се нарушава като условие...
| |
Тема
|
Re: galeria
[re: Blake]
|
|
Автор | zzzzzzzzzz (Нерегистриран) |
Публикувано | 31.01.07 16:17 |
|
Напротив.
Не е нужно стойностите да са последователни.
mysql> use test
Database changed
mysql> create table testlimit (
-> id int not null auto_increment primary key,
-> image varchar(20) not null);
Query OK, 0 rows affected (1.30 sec)
mysql> insert into testlimit(image) values('image1.jpg'),('image2.jpg'),('image3
.jpg'),('image4.jpg');
Query OK, 4 rows affected (0.37 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> delete from testlimit where id=3;
Query OK, 1 row affected (0.27 sec)
mysql> select * from testlimit;
+----+------------+
| id | image |
+----+------------+
| 1 | image1.jpg |
| 2 | image2.jpg |
| 4 | image4.jpg |
+----+------------+
3 rows in set (0.05 sec)
mysql> select image from testlimit limit 2,1;
+------------+
| image |
+------------+
| image4.jpg |
+------------+
1 row in set (0.07 sec)
Така ... аз съм го написал също грешно. Това е станало от бързане,
Трябва да е LIMIT $_GET['image_id'],1
Но в случая първия аргумент задава стартов ред, а втория елемент задава номер на редове които да бъдат върнати в заявката
| |
Тема
|
Re: galeria
[re: zzzzzzzzzz]
|
|
Автор | пxп шмaтka (Нерегистриран) |
Публикувано | 31.01.07 16:29 |
|
LIMIT $_GET['image_id'],1
А за да си чувал?
$limit = 'LIMIT ' . ($_GET['image_id'] ). ',1';
| |
|
Next ->
SELECT imagepath FROM images WHERE imageID>$currentImageID ORDER BY imageID limit 0,1
Prev ->
SELECT imagepath FROM images WHERE imageID<$currentImageID ORDER BY imageID DESC limit 0,1
Или нещо подобно
Освен това трябва да имаш проверка за минимално ИД и за максимално ИД, все някога ще стигнеш края на галерията...
| |
|
$limit = 'LIMIT ' . mysqli_real_escape_string($_GET['image_id'] ). ',1';
Всъщност при аутоинкремент на id-то в MySQL-а е достатъчно
$limit = 'LIMIT ' .(int) $_GET['image_id']. ',1';
root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
| |
|
|
|
|