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

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



  #3  
ישן 28-01-2006, 19:35
  shuraki shuraki אינו מחובר  
 
חבר מתאריך: 10.10.04
הודעות: 224
זה לא כזה פשוט מכמה סיבות ... חשבתי על זה ויש לי כיוון חדש - מכירים דרך לאחוז בשורה?
בתגובה להודעה מספר 2 שנכתבה על ידי GreenBerret שמתחילה ב "אני לא מבין מה בדיוק הבעיה..."

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

בעצם מה שאני מחפש זה לעבור לשורה הבאה/הקודמת של הטבלה החדשה שנוצרה מהשאילתא הנוכחית (ראה RESULT בדוגמא).
חשבתי על שתי אפשרויות לפתרון שאני מתקשה לממש ואשמח אם תעזרו לי בזה -

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



קוד PHP:
 $result mysql_query("
SELECT id 
FROM myTable 
WHERE id='
$id
ORDER BY `popularity`;"
) or die ("problem with select id...");
 
$idPos Find_The_Row_Where_ID($result$id);
 
$id=mysql_result ($result$idPos "id"); 
$Prev_id=mysql_result ($result$idPos-"id"); 
$Next_id=mysql_result ($result$idPos+"id"); 


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

מקווה שזה ברור...
שוב תודה!

נערך לאחרונה ע"י shuraki בתאריך 28-01-2006 בשעה 19:40.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 31-01-2006, 00:07
  shuraki shuraki אינו מחובר  
 
חבר מתאריך: 10.10.04
הודעות: 224
כן. ברור... הבעייה היא שאני לא מצליח לממש אותו כמו שצריך.
בתגובה להודעה מספר 4 שנכתבה על ידי GreenBerret שמתחילה ב "פתרון מספר אחד הוא הפתרון..."

אני בעצם מנסה לעשות פעולת "דפדוף" בין רשומות של טבלה.
הצלחתי לעשות את זה (http://brachot.torahfund.com) אבל בצורה מסורבלת -
על ידי הכנסת הסדר של הרשומות כל פעם מחדש למערך, איתור המיקום של הקטע הנוכחי והצבעה למקום הבא והקודם בהתאם.
בכל אופן, הפעולה הזו יקרה ואיטית להחריד.

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

קוד PHP:
 $i Find_The_Row_Where_ID($result$id); 


ברגע שאצליח לדעת מהו ערך השורה, אכניס אותו ל $i
ומכאן הדרך קלה -

קוד PHP:
 $next_id mysql_result(result$i+1id); 
$prev_id mysql_result(result$i-1id); 


אגב - איך עושים בפורום קישור בלי שיראו את הנתיב אלא שפשוט ילחצו על "מילה כחולה"?
_____________________________________
היו שלום, ותודה על הדגים
[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://www.washingtontrout.org/Vashon/Vashon2001/Icons/Fish.gif]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 29-01-2006, 18:59
  shuraki shuraki אינו מחובר  
 
חבר מתאריך: 10.10.04
הודעות: 224
מצאתי פתרון חלקי לבעייה. מצרף אותו כאן.
בתגובה להודעה מספר 2 שנכתבה על ידי GreenBerret שמתחילה ב "אני לא מבין מה בדיוק הבעיה..."

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

הנה הקוד -


קוד PHP:
 function makeSearchArray($query)

{

    
$result=mysql_query($query);

$numOfRows mysql_num_rows ($result);

for (
$i 0$i $numOfRows$i++) 

{

$Ordered_Array[$i] = mysql_result ($result$i "id"); 

    }

//    if ($i==0) return 0;

    
return $Ordered_Array;

}

$query =(" SELECT id 

            FROM myTable

            WHERE category='
$category

            ORDER BY `popularity` DESC;"
);

$result=mysql_query($query);

$numOfRows mysql_num_rows ($result);
 
$OrderedArray makeSearchArray($query);
 

foreach ( 
$OrderedArray as $key => $value ) { 

if (
$value == $id) {

     if (
$value==current($OrderedArray)) { 

     
$Prev_id 'null';

     
$Next_id = ($key+1);

     } else if (
$value==end($OrderedArray)) { 

     
$Prev_id = ($key-1);

     
$Next_id 'null';

     } else { 

     
$Prev_id = ($key-1);

     
$Next_id = ($key+1);

     } 
// else 

// while

     
// foreach

if ($Prev_id == 'null') {

echo 
'<A href="bracha.php?id='.$OrderedArray[$Next_id].'&category='.$category.'&page='.$page.'">הבא</A> ';

} else if (
$Next_id == 'null') {

echo 
'<A href="bracha.php?id='.$OrderedArray[$Prev_id].'&category='.$category.'&page='.$page.'">הקודם</A> | ';

}else {

echo 
'<A href="bracha.php?id='.$OrderedArray[$Prev_id].'&category='.$category.'&page='.$page.'">הקודם</A> | ';

echo 
'<A href="bracha.php?id='.$OrderedArray[$Next_id].'&category='.$category.'&page='.$page.'">הבא</A> ';


נערך לאחרונה ע"י shuraki בתאריך 29-01-2006 בשעה 19:05.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 30-01-2006, 00:44
  shuraki shuraki אינו מחובר  
 
חבר מתאריך: 10.10.04
הודעות: 224
התגברתי על הבעייה ... המונה של המערך התחיל מהמקום הלא נכון...
בתגובה להודעה מספר 13 שנכתבה על ידי shuraki שמתחילה ב "מצאתי פתרון חלקי לבעייה. מצרף אותו כאן."

היות והשאילתא נוצרת עבור כל טעינה מחדש, אשמח אם תבדקו אם זה מאט את הגלישה.
קישור - http://brachot.torahfund.com

הנה הקוד המסודר -
קוד PHP:
<?
function makeSearchArray($query) {
$result=mysql_query($query);
$numOfRows = mysql_num_rows ($result);
for ($i = 0; $i < $numOfRows; $i++) 
{
$Ordered_Array[$i+1] = mysql_result ($result, $i , "id"); 
    }
return $Ordered_Array;
}
 
 
 
$query =(" SELECT id 
     FROM myTable 
     WHERE category='$category' 
     ORDER BY `popularity` DESC;");
$result=mysql_query($query);
$numOfRows = mysql_num_rows ($result);
$OrderedArray = makeSearchArray($query);
 
 
 
foreach ( $OrderedArray as $key => $value ) { 
if ($value == $id) {
     if ($value==current($OrderedArray)) { 
     $Prev_id = 'null';
     $Next_id = ($key+1);
     } else if ($value==end($OrderedArray)) { 
     $Prev_id = ($key-1);
     $Next_id = 'null';
     } else { 
     $Prev_id = ($key-1);
     $Next_id = ($key+1);
     } // else 
    } // if value
} // foreach
if ($Prev_id == 'null') {
echo '<td align=left><A href="bracha.php?id='.$OrderedArray[$Next_id].'&category='.$category.'&page='.$page.'"><img src=more_pictures\next.gif border=0></A> </td>';
} else if ($Next_id == 'null') {
echo '<td align=right><A href="bracha.php?id='.$OrderedArray[$Prev_id].'&category='.$category.'&page='.$page.'"><img src=more_pictures\prev.gif border=0></A></td>';
}else {
echo '<td align=right><A href="bracha.php?id='.$OrderedArray[$Prev_id].'&category='.$category.'&page='.$page.'"><img src=more_pictures\prev.gif border=0></A></td>';
echo '<td align=left><A href="bracha.php?id='.$OrderedArray[$Next_id].'&category='.$category.'&page='.$page.'"><img src=more_pictures\next.gif border=0></A></td> ';
}
?>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

הדף נוצר ב 0.08 שניות עם 12 שאילתות

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

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