השמעת רצף תוצאות מתוך database באמצעות API
-
@לעזור-לכולם אמר:
ואז לעשות לולאה ששומרת את המיקום שלו
- איך עושים את זה?
- האם בכל קריאה, אצטרך להפעיל מחדש את השאילתה מול הדטאבייס?
- נדמה לי שבread אין אפשרות לעצור את ההקראה באמצע, כלומר, המאזין יצטרך להקשיב לכל הודעה עד הסוף כדי שיוכל לדפדף, ואז לא הרווחתי כלום, כי גם כך, אני יכול לשרשר את כל ההודעות להודעה אחת גדולה.
-
@ביבי-נתניהו אמר בהשמעת רצף תוצאות מתוך database באמצעות API:
@לעזור-לכולם אמר:
ואז לעשות לולאה ששומרת את המיקום שלו
- איך עושים את זה?
- האם בכל קריאה, אצטרך להפעיל מחדש את השאילתה מול הדטאבייס?
- נדמה לי שבread אין אפשרות לעצור את ההקראה באמצע, כלומר, המאזין יצטרך להקשיב לכל הודעה עד הסוף כדי שיוכל לדפדף, ואז לא הרווחתי כלום, כי גם כך, אני יכול לשרשר את כל ההודעות להודעה אחת גדולה.
1&2. אתה יכול לשמור את התוצאה של השאילתה בקובץ זמני, במקביל תשמור בקובץ נוסף את האינדיקס של התוצאה
3. בread אפשר להקיש תוך כדי ותגדיר לדוג' שעם הקיש 1 יעבור לתוצאה הבאה, ו2 לשמיעה חוזרת ו3 לקודמת, ותגדיר שעם לא הקיש שום מקש לאחר שניה מסיום השאלה ישלח הערך כאילו הקיש 1 לתוצאה הבאה (יש להגדיר גם שיחזור על השאלה פעם אחת בלבד, מומלץ)בהצלחה
-
@ערוץ-הסקרים אתה מלך
, השאלה רק איך מבצעים את הרעיון הזה, זה קצת יותר מסובך ממה שאני יודע -
@חויוה-טלפונית
לגבי 1 ושתיים אתה לא צריך קובץ זמני
תעשה שאילתה שמוציאה לך את כל התוצאות ואז יש לך הכל במערך
ופשוט תדפדף במערכ לפי המיקום שהוא נמצא -
@חויוה-טלפונית אמר בהשמעת רצף תוצאות מתוך database באמצעות API:
@ערוץ-הסקרים אתה מלך
, השאלה רק איך מבצעים את הרעיון הזה, זה קצת יותר מסובך ממה שאני יודעזה יותר פשוט ממה שאתה חושב, אתה רק צריך ידע בסיסי ב-SQL.
א. צור טבלת משתמשים עם העמודות: מספר טלפון, שורה
ב. צור 2 שלוחות:- קבלת מידע מתחילת הרשימה
- קבלת המשך המידע
כאשר המשתמש נכנס לשלוחה 1 -
א. אתה נותן לו את התוצאה הראשונה
ב. אתה בודק האם מספר הטלפון שלו רשום בטבלת המשתמשים (שאילתת SELECT)- אם כן - אתה מעדכן את הערך בשדה 'שורה' למספר 2
- אם לא - אתה מוסיף שורה חדשה לטבלת המשתמשים, טלפון = הטלפון של המשתמש, שורה = 2
ג. בהקשה על המקש במעביר להודעה הבאה אתה מעביר את המשתמש לשלוחה השנייה של 'שמיעת המשך הרשימה'
ד. בכניסה לשלוחת ההמשך -- אתה בודק בטבלת המשתמשים אם מספר הטלפון של המשתמש מופיע (SELECT)
- אם הוא לא מופיע - מסתבר שהיתה תקלה ומספר הטלפון שלו לא נשמר - תשמיע הודעת שגיאה ותוציא מהשלוחה
- אם הוא כן מופיע בטבלה - קח את הערך הצמוד מהשדה 'שורה' והנה לך האינדקס לשאילתת שליפת המידע (
LIMIT $X, 1
) - עדכן את הערך בטבלת המשתמשים בשורה השייכת למספר הטלפון של המשתמש ( WHERE ), הערך החדש יהיה חישוב של הערך הקודם + 1
וכן הלאה על זה הדרך, בהצלחה!
-
@שואל-ברצינות
רעיון גאוני!
אגב, באותו דרך אפשר גם להפנות לתוצאה קודמת.עדיין נשארו לי כמה חורים:
- איך אני מחזיר תשובה, עם read או id_list_message
- איפה בדיוק אני מגדיר את המקש למעבר לתוצאה הבאה או הקודמת
-
- עם read
- עם read
-
-
@ביבי-נתניהו
תסתכל בתיעוד
הרעיון בגדול שזה שילוב של id_list_message עם אפשרות הקשה
וכן זה נשלח מהשרת -
@שמחה-זו-הסיסמא , @ערוץ-הסקרים , @לעזור-לכולם , @שואל-ברצינות
חשבתי על רעיון נוסף שאולי יהיה פחות מסורבל:
לאחר ביצוע השאילתה, נוצרת שלוחה זמנית כשם מספר המאזין, והעלאה של קבצי tts בזה אחר זה בהתאם לכמות התוצאות
ואז המאזין מופנה לשלוחה, ומדפדף בין ההודעות באופן טבעי בלי יותר מדי קומבינות, כמו שלוחת השמעה רגילה
ברגע שהמאזין יוצא, השלוחה נמחקת -
@ביבי-נתניהו אמר בהשמעת רצף תוצאות מתוך database באמצעות API:
בלי יותר מדי קומבינות
אני חושב שזה הרבה יותר קומבינות ממה שהציעו לך למעלה
-
@ביבי-נתניהו אמר בהשמעת רצף תוצאות מתוך database באמצעות API:
חשבתי על רעיון נוסף שאולי יהיה פחות מסורבל:
זה רעיון יפה במקרה וזה רק שמיעת פרטים [כגון פרטי איש קשר וטלפון וכתובת וכד']
אך במקרה ותרצה לעשות פעולות על התוצאה [כגון שמירת התוצאה לפעם אחרת, התקשרות לבן אדם, וכד']
לא יעזרו לך קבצי txt