הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שליפת הערך הקודם \ הבא מתוך הDB (https://hosts.co.il/forums/showthread.php?t=81263)

spi7fire 18-02-10 18:32

שליפת הערך הקודם \ הבא מתוך הDB
 
היי,
יש לי טבלה עם השדות: ID, TEXT

אני מציג באתר שלי את הטקסט בתוך קוביה, ומתחתיה 2 כפתורים - הבא, והקודם.
אני מעוניין לאפשר לגולש ללחוץ "הבא" ו"הקודם" ולדפדף בתוכן שנמצא בטבלה הנ"ל.

אי אפשר להשתמש בID+1 כיוון שלפעמים יש קפיצות (עקב מחיקת טקסטים), כלומר אני צריך לשלוף את הערך הבא.
כמו כן אני רוצה כשכמגיעים לסוף הרשימה - שזה יעבור לתחילתה.

ניסיתי לבנות את הקוד לבד ולא הצלחתי. למישהו יש קוד כזה מוכן שהוא יוכל לרשום פה ולעזור לי איתו?


תודה לעונים!

daMn 18-02-10 19:44

אם למשל אתה נמצא בטקסט שהid שלו הוא 5 ואתה לוחץ על "הבא", אתה מבצע את השאילתא כאשר ID גדול מ5 (id > 5) ואתה בעצם עושה LIMIT של אחד, כמובן שאתה חייב גם ORDER לפי id.

spi7fire 18-02-10 19:58

זה בדיוק מה שרשמתי, אבל משום מה הprev שלי לא עובד טוב
הנה הקוד:

ציטוט:

if ($movenext == 1)
{
$query = mysql_query("SELECT * FROM tbl_info WHERE type='$type' AND id > '$id' ORDER BY id LIMIT 1");
echo "movenext1";
}
else
{
$query = mysql_query("SELECT * FROM tbl_info WHERE type='$type' AND id < '$id' ORDER BY id LIMIT 1");
echo "movenext0";
}

הקדימה עובד לי טוב, אבל ברגע שאני לוחץ פעמיים אחורה הוא לא מוצא מה לשלוף
הוספתי קוד שבודק את זה:

ציטוט:

if (mysql_num_rows($query) == 0)
{
if ($movenext == 1)
{
$query = mysql_query("SELECT * FROM tbl_info WHERE type='$type' ORDER BY id DESC LIMIT 1");
echo "emptyq1";
}
else
{
$query = mysql_query("SELECT * FROM tbl_info WHERE type='$type' ORDER BY id LIMIT 1");
echo "emptyq0";
}
}

Elad-A 18-02-10 22:00

תוסיף ב ORDER את ASC \ DESC בהתאם לצורך.

spi7fire 19-02-10 01:31

הסתדרתי, זה באמת היה עניין של שליפת DESC וASC. תודה!


כל הזמנים הם GMT +2. הזמן כעת הוא 08:26.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ