שלח תשובה

זירת השאלות

592
צפיות
7
תשובות

בעיה בשליפת נתונים ממסד דרך PHP.

,‏ 17 בספטמבר, 2004

שלום לכם!
אני רוצה להתחיל בברכת חג שמח ושנה טובה לכולם!

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


if ($bluh<$sum){$bluhb=$bluh+1; echo "<a href=index.php?id=$bluhb>הבן אדם הבא</a>";}


הבעיה היא, שהאיי דיים הם לא רציפים. מה שאומר, שיכול להיות לי לינק, לאיי די שלא קיים.

איך אני יכול לעשות בדיקה מול מסד הנתונים – מה האיי די הבא שקיים בטבלה? ואז זה ישתמש באיי די הזה.

מסד הנתונים הוא MYSQL.


תודה רבה לעוזרים, (וגם למי שנכנס להודעה ולא הצליח לעזור.. 🙂

תגיות:

7 תשובות

  1. BuildHome הגיב:

    מישהו בעבר שאל את אותה השאלה
    רק ב-ASP [קישור].
    עניתי לו + בניתי מערכת קטנה שמציגה איך מנווטים קדימה ואחורה בנתונים.
    השינוי הוא רק בשאילתה ככה שאני מניח שזה דומה ב-PHP.

    מה שעשיתי שם בקוד (קישור פועל של הקוד) זה 2 שאילתות פשוטות ששולפות את ה-ID הבא והקודם לרשומה הנוכחית.

    באופן תאורתי זה לשלוף את הרשומה הבאה ע"י בחירת ה-ID הגדול מה-ID הנוכחי ולשלוף את ID הרשומה הבאה זה יהיה בעצם ההיפך – שליפת ה-ID שקטן מה-ID הנוכחי.

    אני לא זוכר בגרוש PHP ככה שקוד דוגמתי לא אוכל לכתוב לך (רק את ה-ASP).
    מקווה שלפחות עזרתי באופן התאורתי.

  2. הדוגמא שלך לא עובדת
    הלינק מוביל ל 404. (לא הלינק לתשובה שלך, אלא הלינק בתשובה שלך, לדוגמא של מה שבנית).

  3. BuildHome הגיב:

    טעות של הפורום
    שם את הקישור של הקישור הראשון.

    הנה קישור שפועל:
    http://www.dvirs.net/Files/rec/rec.asp

    אפשר גם לתת קישור להורדת הדוגמא (במידה ויעזור).

  4. אשמח לקבל את הקישור להורדת הדוגמא.
    תודה

  5. בניתי משהו וקצת הסתבכתי!
    אז זאת השורה שלי ל MySQL אבל היא לא עובדת מספיק טוב:


    SELECT * FROM `names_barak` WHERE ID < 225 ORDER BY id ASC LIMIT 1

    מה לא טוב אתם שואלים? בואו אני אגיד לכם:
    כשאני רוצה להשיג את האיי די שיותר גדול מהאיי די שרשמתי, זה סבבה.
    אבל כשאני רוצה להשיג את האיי די שיותר קטן, הוא נותן לי את האיי די הכי קטן.
    לדוגמא, נגיד שיש לי רשימה של איי דיים מ 1 ועד 10.
    אם אני ארשום את השורה הזאת:


    SELECT * FROM `names_barak` WHERE ID > 5 ORDER BY id ASC LIMIT 1

    אז אני אקבל 6 שזה סבבה.
    אבל אם אני ארשום:


    SELECT * FROM `names_barak` WHERE ID < 5 ORDER BY id ASC LIMIT 1

    אני אקבל 1.

    מישהו יכול לעזור ?
    תודה רבה!

  6. Alo הגיב:

    תנסה
    לשנות את ASC ל DESC במידת הצורך

שלח תשובה