לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 29-09-2007, 09:40
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 1 שנכתבה על ידי Xpein שמתחילה ב "עמודים חדשים.."

קודם כל, בקטע הקוד הראשון יש לך לולאה אין-סופית - num$ לא משתנה במהלך הלולאה, אבל התנאי עליו.
הלולאה לעולם לא תסתיים...

בקשר לשאלה שלך, דרך אחת לעשות זאת היא כזו:
לצורך קביעת מספר ה"דפים", מריצים:
קוד PHP:
 $sql_query "SELECT COUNT(*) FROM table_name";
$result mysql_query($sql_query);
if (
mysql_num_rows($result) == 0$num 0;
else 
$num mysql_result($result,0); 


אחרי קטע הקוד הזה, בתוך המשתנה num$ ישמרו מספר השורות שיש לך בטבלה (אם היינו מוסיפים פרמטר WHERE, היינו מקבלים את מספר השורות שבהן מתקיים התנאי).

עכשיו, במקום שבו תרצה להוסיף את ספירת העמודים, צריך לעשות משהו בסגנון הבא:
1) קובעים כמה תוצאות יוצגו בעמוד.
2) בונים את הלינקים

קוד PHP:
 $res_per_page 10//For example...
for ($i 0$i $num$i+=$res_per_page) {
    echo 
"<a href='" $_SERVER['PHP_SELF'] . "?ofset=$i&quryparam=" $_GET['queryparam'] . "'> " $i/$res_per_page+"</a>";



הלינקים מכילים 2 דברים עקריים שעוברים בכתובת - offset לשליפת הנתונים הבאה - כלומר מאיזה מקום צריך לשלוף בדף המסויים, ומשתנה queryparam שזוכר מה השאילתא שאנחנו מריצים.
זה מאד בסיסי ולא מאובטח, אני ממליץ בחום להמציא לך שיטה מאובטחת להעברת הנתון הנ"ל, אבל לצורך פשטות נתייחס ככה...
ועכשיו בקשר לשליפת הנתונים:
קוד PHP:
 if (isset($_GET['ofset'])) $page=$_GET['ofset'];
else 
$page 0;
//Assume: $_GET['queryparam'] = "SELECT * FROM table WHERE conditions";
$sql_query $_GET['queryparam'] . "LIMIT $page$res_per_page"

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 29-09-2007, 10:04
  Xpein Xpein אינו מחובר  
 
חבר מתאריך: 21.01.06
הודעות: 813
קודם כל תודה רבה
בתגובה להודעה מספר 2 שנכתבה על ידי Dark Knight שמתחילה ב "קודם כל, בקטע הקוד הראשון יש..."

תודה רבה!
תשמע, הקוד הזה דיי ברמה גבוהה (בשבילי) ולא הבנתי כמה דברים..
אז קודם כל,
השתמשת בnum_rows אז למה הייתה צריך לעשות בשאילתה
COUNT(*) (וד"א פעם ראשונה אני רואה את זה),

דבר שני,
לגבי הפונקצייה mysql_result, מה היא עושה? אילו אורגומנטים שמים בה ומה היא מחזירה?

בחלק השני, שהדפסת את העמודים, העלת את i ככה: $i+=$res_per_page
אני מכיר את האופרטור הזה, אבל למה היית צריך להפוך את i לתוצאה של החיבור של i עם מספר ההגבלה של הדפים(10)?

לא הבנתי בכלל מה עשית בלינק, הבנתי בהתחלה שהשתמשת במשנה סביבה, וקודם כל התחלת את
הכתובת באותה כתובת שקיימת, לאחר מכן לא הבנתי..
מה הפרוש של זה? ?ofset=$i&quryparam=
ואיך אתה משתמש ב$_GET['queryparam'] ככה באמצע הלינק?!
מאיפה הבאת בכלל את queryparam ?

ובסוף את שם הלינק, מה התוצאה של זה אמורה להיות? $i/$res_per_page+1
לפי מה שאני הבנתי זה 10 + i חלקי 10 +1 מה הפרוש של זה?

על החלק האחרון נעבור אחרי שאני ידע את זה 0_o
אבל לא כל כך הבנתי איפה למקם אותו..
לשים את כל מה שהבאת באותו הדף (בתחתית) ?
אם לא, באיזה דף לשים את החלק האחרון?

מצטער על כל השאלות האלה פשוט לא הבנתי כלום.... תודה רבה לך אחי!!!!!!!!!

_____________________________________
--- ! Area Close ! ---

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 29-09-2007, 10:33
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 3 שנכתבה על ידי Xpein שמתחילה ב "קודם כל תודה רבה"

המ.. טוב.. נשתדל ללכת לפי הסדר...

למה השתמשתי ב-num_rows? יש 2 אפשרויות לתוצאה של השאילתא הזו: שורה אחת שמכילה מספר (מספר השורות) או פשוט שורה ריקה - אין תוצאות.
למרות שב-COUNT לא מאד סביר שזה יקרה, שורת הבדיקה באה בסה"כ לוודא שאני לא מבצע השמה של משהו חסר משמעות, ושפקודת: mysql_result לא תכשל ותציג לך שגיאה שאתה לא תרצה שתופיע בדף.

הפונק' mysql_result היא פונק' שיודעת לקבל תוצאה של שאילתא שהתקבלה מ-mysql_query ולעבוד איתה בצורה קצת שונה מהמערך שאתה משתמש בו בד"כ.
מה שנוח בפונק' הזו היא שאתה לא חייב לעבוד בה שורה שורה, אלא כל הנתונים נגישים בבת אחת.
הפונק' מקבלת תוצאה של שאילתא (result$), מספר שורה (0) ואם מדובר בפקודת SELECT רצינית יותר אז גם את שם השדה באותה השורה.
אם לדוגמא יש לך טבלה: id, name, age, height ויש בה 20 אנשים רשומים, אז תוכל לבצע שאילתא
SELECT * FROM people, ואז פשוט לגשת לאן שאתה רוצה:
קוד PHP:
 mysql_result($result13'age'); 

יחזיר לך את גיל האדם בשורה ה-14 (מתחיל מ-0).

השתמשתי בהעלאת מונה כזו מטעמי נוחות. קריאה של המשך הקוד תבהיר שזה נוח יותר לחלק פעם אחת מלהכפיל 10...
i$ פשוט הופך להיות מספר הרשומה הראשונה בעמוד, מה שמקל על המשך הקוד...

לשאלה שלך על הכתובת, אני ממליץ שתעשה אתנחתא ותעבור ללמוד קצת על שיטות של מעבר נתונים.
תקרא על שיטת GET, ותחזור לקוד א"כ...
אני לא רוצה להתחיל להכנס להסברים על רגל אחת ובנפנופי ידיים.
תשקיע חצי שעה\שעה ותלמד את הנושא כמו שצריך. זה ישתלם לך!

למה לי לא להשתמש ב-$_GET['queryparam'] באמצע הלינק? זה משתנה לכל דבר...
זה משתנה שהעברתי דרך הכתובת, ואחת ההנחות הסמויות בעמוד הזה הן שהוא קיים...

קוד:
$i/$res_per_page+1

בוא נראה, מה בעצם השורה הזו עושה?
$i/$res_per_page - נותן בעצם כמה איטרציות ביצענו, כאשר האיטרציה הראשונה - מספרה 0.
אז אני מוסיף אחד ידנית.
מה זה נותן?
מספר העמוד. (תחשוב למה)
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 14:15

הדף נוצר ב 0.06 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר