592
צפיות
צפיות
7
תשובות
תשובות
בעיה בשליפת נתונים ממסד דרך PHP.
שלום לכם!
אני רוצה להתחיל בברכת חג שמח ושנה טובה לכולם!
ועכשיו, אני אתחיל בבעיה שלי. אז ככה:
יש לי סקריפט שמציג דף עם פרטים על בן אדם.
בסוף של הדף, יש לינק לבן אדם הבא.
הלינק הוא לפי ID שנשלף ממסד נתונים.
במצב הנוכחי, הלינק לID הבא, הוא האיי די הנוכחי פלוס אחד.
if ($bluh<$sum){$bluhb=$bluh+1; echo "<a href=index.php?id=$bluhb>הבן אדם הבא</a>";}
הבעיה היא, שהאיי דיים הם לא רציפים. מה שאומר, שיכול להיות לי לינק, לאיי די שלא קיים.
איך אני יכול לעשות בדיקה מול מסד הנתונים – מה האיי די הבא שקיים בטבלה? ואז זה ישתמש באיי די הזה.
מסד הנתונים הוא MYSQL.
תודה רבה לעוזרים, (וגם למי שנכנס להודעה ולא הצליח לעזור.. 🙂
7 תשובות
מישהו בעבר שאל את אותה השאלה
רק ב-ASP [ ].
עניתי לו + בניתי מערכת קטנה שמציגה איך מנווטים קדימה ואחורה בנתונים.
השינוי הוא רק בשאילתה ככה שאני מניח שזה דומה ב-PHP.
מה שעשיתי שם בקוד (
פועל של הקוד) זה 2 שאילתות פשוטות ששולפות את ה-ID הבא והקודם לרשומה הנוכחית.באופן תאורתי זה לשלוף את הרשומה הבאה ע"י בחירת ה-ID הגדול מה-ID הנוכחי ולשלוף את ID הרשומה הבאה זה יהיה בעצם ההיפך – שליפת ה-ID שקטן מה-ID הנוכחי.
אני לא זוכר בגרוש PHP ככה שקוד דוגמתי לא אוכל לכתוב לך (רק את ה-ASP).
מקווה שלפחות עזרתי באופן התאורתי.
הדוגמא שלך לא עובדת
הלינק מוביל ל 404. (לא הלינק לתשובה שלך, אלא הלינק בתשובה שלך, לדוגמא של מה שבנית).
טעות של הפורום
שם את הקישור של הקישור הראשון.
הנה קישור שפועל:
אפשר גם לתת קישור להורדת הדוגמא (במידה ויעזור).
אשמח לקבל את הקישור להורדת הדוגמא.
תודה
כמובן
הנה הקישור:
בניתי משהו וקצת הסתבכתי!
אז זאת השורה שלי ל 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.
מישהו יכול לעזור ?
תודה רבה!
תנסה
לשנות את ASC ל DESC במידת הצורך