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

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



  #1  
ישן 24-09-2007, 10:59
  nativg nativg אינו מחובר  
 
חבר מתאריך: 19.08.07
הודעות: 69
מנוע חיפוש כולל order

היי
אני עכשיו בונה מנוע חיפוש שעובר על טבלה מסויימת במסד, ובודק אם המילת חיפוש נמצאת באחד מהשדות בטבלה.
בגלל שמדובר בכמה וכמה נתונים, נניח אם בן אדם מחפש את התאריך 20/02/2007 אני רוצה שהוא יחפש גם בשדה של השמות, גם בשדה של התוכן וגם בשדה של התאריך ויציג לו כמובן את כל התוצאות שהתקבלו.
שזה תכלס שטויות... גם נעזרתי קצת במדריך שהיה פה בארכיון...
אני רוצה לשדרג קצת את מנוע החיפוש שלי ולהוסיף לו order..
ז"א שכאשר התוצאות מתקבלות הם מחולקים בטבלה מסודרת...
השורה הראשונה של הטבלה תיהיה כותרות.
לדוג'
id | שם פרטי | שם משפחה | טלפון
ואז מתחת לכל כותרת יבואו הנתונים המתאימים של השורה שנמצאה בה המילת חיפוש.
שגם זה ממש שטויות..
אני רציתי לעשות כאשר ילחצו על אחת הכותרת, למשל הוא לחץ על שם פרטי, הוא יסדר את התוצאות לפי השם הפרטי.
בשביל זה אני אמור להוסיף ORDER BY לשאילתה שלי.
הבעיה, שהשאילתה שלי נוצרת בחיפוש.
ואני מנסה לחשוב איך אני יכול לשמור את התוצאות שהתקבלו, ורק אותם למיין...
אני אשמח לחוות דעת בנושא.
תודה רבה ושנה טובה!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 25-09-2007, 00:17
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
אני לא מאמין שבאמת ישבתי לכתוב את זה
בתגובה להודעה מספר 6 שנכתבה על ידי dardevil שמתחילה ב "אההה רעיון חכם... אבל איך אני..."

זה הרעיון בגדול:
קוד PHP:
<?php

$data 
= array();
$data[] = array('id'=>3,
                
'name'=>'bbbb',
                
'phone'=>'2222');
$data[] = array('id'=>2,
                
'name'=>'aaaa',
                
'phone'=>'11111111111');
$data[] = array('id'=>1,
                
'name'=>'cccc',
                
'phone'=>'7050505050');
$data[] = array('id'=>4,
                
'name'=>'dddd',
                
'phone'=>'33333');
                
$jsonObj json_encode($data);

?>

<html>
<head>
<script type="text/javascript">
var dataObj = eval('(<?php echo $jsonObj?>)');

function sortTable(sortFunc)
{
    var resTable = document.getElementById('resTable');
    var table =    '<table>\
            <th><span style="cursor:pointer;" onclick="sortTable(sortById);">ID</span></th>\
            <th><span style="cursor:pointer;" onclick="sortTable(sortByName);">Name</span></th>\
            <th><span style="cursor:pointer;" onclick="sortTable(sortByPhone);">Phone</span></th>';
    dataObj.sort(sortFunc);
    for (var i in dataObj)
    {
        table += '<tr>\
                    <td>' + dataObj[i].id + '</td>\
                    <td>' + dataObj[i].name + '</td>\
                    <td>' + dataObj[i].phone + '</td>\
                </tr>';
    }
    table += '</table>';
    resTable.innerHTML = table;
}

function sortById(a, b)
{
    return a.id - b.id;
}

function sortByName(a, b) {
    var x = a.name.toLowerCase();
    var y = b.name.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function sortByPhone(a, b) {
    var x = a.phone.toString().toLowerCase();
    var y = b.phone.toString().toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
</script>
</head>
<body onload="sortTable(sortById)">
<div id="resTable">
</div>
</body>
</html>


ככה - בחלק של הPHP סתם נתתי לו מערך כאשר כל איבר במערך הוא מערך בפני עצמו עם הערכים ID, Name, Phone (שאותם אתה לוקח מהדאטאבייס). אחרכך העברתי את זה לפורמט JSON כדי שיהיה קל לעבוד עם זה בג'אווהסקריפט (אם אתה לא מכיר, json.org).

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

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

מקווה שעזרתי

אם אתה רוצה לראות את זה בפעולה - http://wizi.spunk.co.il/h/
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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