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

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



  #1  
ישן 22-04-2007, 21:47
  skletter skletter אינו מחובר  
 
חבר מתאריך: 22.04.07
הודעות: 28
עזרה ביצירת מנוע חיפוש פנימי

אני עושה מנוע חיפוש בתוך האתר שלי בעזרת PHP וMYSQL, ואני לא יודע איך לגרום לתוצאות לחזור על עצמן מספר פעמים (לפי מספר התוצאות) ולשנות כל פעם את המשתנים המתקבלים בכל חזרה למשתנים המתאימים לפי מספר החזרה...
קוד:
<?php include ("db.php"); // המשתנים מהטופס // $search = mysql_real_escape_string(htmlspecialchars($_POST["radio1"])); $method = mysql_real_escape_string(htmlspecialchars($_POST["select1"])); $searchwords = mysql_real_escape_string(htmlspecialchars($_POST["search"])); // הגדרות לגבי חלוקת הדפים // if($page == NULL) $page = 1; if($perpage == NULL) $perpage = 10; // הגדרות לגבי השאילתא // if ($search <> all) $type = "AND TYPE == {$search}"; if ($search == all) $type = NULL; // השאילתא // $query = mysql_query("SELECT * FROM tabs WHERE '$method' LIKE '%{$searchwords}%' 'type' ") or die("query field:".mysql_error()); $nump = mysql_num_rows($query); echo ' <html> <head> <link rel="stylesheet" href="style.css"> </head> <body> <center> <div style="font-family:arial;font-size:25;">תוצאות החיפוש</div><p> <div style="font-family:arial;font-size:14;">נמצאו '.$nump.' דפים העונים על החיפוש שהתבקש</div><br> '; // אני לא יודע מה לכתוב כאן אני יודע שצריך להגדיר את המשתנים שמופיעה בטבלה למטה וגם לקבוע שהטבלה חוזרת על עצמה ע"פ מספר השורות שהתקבלו // echo ' <br><table class="values" width="350" border="2" cellspacing="0" bordercolor="#426bab"><tr><td class="create" colspan="2"><a href="view.php?id='.$id.'">'.$songname.' - '.$artistname.'</a></td></tr> <tr><td class="create">הועלה ע"י '.$adder.'</td><td class="create">בתאריך: '.$date.'</td></tr></table><br> '; } // מספר הדפים // $nump = $nump / $perpage; if(intval($nump) != $nump) $nump = intval($nump) + 1; for($I = 1; $I<= $nump; $I++) { if($page != $I) echo "&lt;A HREF=\"$PHP_SELF?page=$I\"&rt;$I&lt;/A&rt;"; else echo $I; if($I != $perpage) echo " - "; } ?>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 22-04-2007, 22:18
  skletter skletter אינו מחובר  
 
חבר מתאריך: 22.04.07
הודעות: 28
בתגובה להודעה מספר 2 שנכתבה על ידי DCD שמתחילה ב "נסה לנסח בצורה טובה יותר"

ציטוט:
במקור נכתב על ידי DCD
נסה לנסח בצורה טובה יותר


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

אז מה שאני לא יודע זה להגדיר את המשתנים id songname artistname adder ו-name ככה שכל אחד ישתנה בהתאם לשורה בו הוא נמצא (או שמגדירים את זה אחרת), ובאיזה לולאה להשתמש בשביל לגרום לחזרה הזאת של הטבלאות. או אולי אם יש דרך לגרום דרך הלולאה למשתנה להשתנות בהתאם... אני לא יודע זה בדיוק הקטע שאני לא מבין... אני מקווה שתבינו למה אני מתכוון...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 23-04-2007, 08:03
  יובל_כ יובל_כ אינו מחובר  
 
חבר מתאריך: 19.03.07
הודעות: 75
בתגובה להודעה מספר 3 שנכתבה על ידי skletter שמתחילה ב "[QUOTE=DCD]נסה לנסח בצורה..."

אין כמו Copy -Paste.


בדיוק כתבתי משהו דומה.
אני שולח את הכל לתוך משתנה בשם Content ורק אחרי זה מדפיס את הדף אבל אתה יכול פשוט להדפיס ישירות. (echo).

בכל מקרה השורה שגורמת לביצוע שוב ושוב של הטבלה שלך היא:
קוד PHP:
 while ($row mysql_fetch_array($q_result)) 

---------------------------------------


קוד PHP:
 function createResList($link$page, &$q_result, &$content)
{
 
    
$numofpages mysql_num_rows($q_result);
 
    
$resNum = ($page 1) * MAX_RESOULTS_IN_PAGE;
    
$lastRes $page MAX_RESOULTS_IN_PAGE;
    if (
$lastRes $numofpages$lastRes $numofpages;
 
    if ((
$numofpages 0) && ($numofpages $resNum))
    {
        
$content .= '<FONT class="weak">';
        
$content .= 'תוצאות ' .($resNum+1) .' עד ' .$lastRes .' מתוך ' .$numofpages;
        
$content .= '</FONT>';
 
        
mysql_data_seek($q_result$resNum);
 
        
// pars the resoult
        
while ($row mysql_fetch_array($q_result))
        {
            
$content .= '
            <table>
                <tr>
                    <td class="flx">
                        <A href="' 
.SAF_NOA .$row['id'] .'"><FONT class="sh">' 
                                    
.$row['name'] .'</FONT></A><BR>';
                                    
// trim the content to first 150 carecters (on UTF8)
                                    
if (strlen($row['content']) < 300)
                                        
$content .= $row['content'];
                                    else
                                        
$content .= substr($row['content'], 0299) .'...';
                                    
$content .= '</td>
                </tr>
            </table>'
;
            
$resNum +=1;
            if (
$resNum >= $lastRes)
                break;
        }    
 
        
// Create page links counter - Page 1,2,3,4...
        
$counter 1;
        
$content .= "<BR>" ."תוצאות נוספות :";
        while (((
$counter-1) * MAX_RESOULTS_IN_PAGE) < $numofpages)
        {
            
$content .= $link .'&p=' .($counter) .'>' .($counter) .'</A>&nbsp;&nbsp;';
            
$counter += 1;
        }
    }
    else    
// NO DATA
    

        
$content .= '<H2>';
        
$content .= 'לא נמצאו תוצאות התואמות חיפוש זה';
        
$content .= '</H2>';
    }



נערך לאחרונה ע"י יובל_כ בתאריך 23-04-2007 בשעה 08:08.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 23-04-2007, 21:10
  יובל_כ יובל_כ אינו מחובר  
 
חבר מתאריך: 19.03.07
הודעות: 75
בתגובה להודעה מספר 5 שנכתבה על ידי skletter שמתחילה ב "לא כל כך הבנתי מה השאילתא שלך..."

קח.

לא נגעתי כמעט בכלל בקוד שלך ואני מניח שמה שכתבת כשמות משתנים הם למעשה שמות של תאים ב DB.
קוד PHP:
<?php
include ("db.php");
// המשתנים מהטופס //
$search mysql_real_escape_string(htmlspecialchars($_POST["radio1"]));
$method mysql_real_escape_string(htmlspecialchars($_POST["select1"]));
$searchwords mysql_real_escape_string(htmlspecialchars($_POST["search"]));
// הגדרות לגבי חלוקת הדפים //
if($page == NULL
    
$page 1;
if(
$perpage == NULL)
    
$perpage 10;  
// הגדרות לגבי השאילתא //
if ($search <> all)
    
$type "AND TYPE == {$search}";
if (
$search == all)
    
$type NULL;
// השאילתא //
$query mysql_query("SELECT * FROM tabs WHERE '$method' LIKE '%{$searchwords}%' 'type' "
        or die(
"query field:".mysql_error());
$nump mysql_num_rows($query);
echo 
'
    <html>
    <head>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <center>
    <div style="font-family:arial;font-size:25;">תוצאות החיפוש</div><p>
    <div style="font-family:arial;font-size:14;">נמצאו '
.$nump.' דפים העונים על החיפוש שהתבקש</div>
    <br>
    '
;
    
// Loop the resoults
    
while ($row mysql_fetch_array($query))
    {
        echo 
'
        <br>
        <table class="values" width="350" border="2" cellspacing="0" bordercolor="#426bab">
            <tr>
              <td class="create" colspan="2">
                <a href="view.php?id='  
.$row['id'] .'">'
                                        
.$row['songname'] .' - '
                                        
.$row['artistname'] .'</a>
              </td>
            </tr>
            <tr>
              <td class="create">
                הועלה ע"י '
.$row['adder']
             .
'</td>
              <td class="create">
                בתאריך: '
.$row['date']
             .
'</td>
            </tr>
        </table>
        <br>'
;
    }
// מספר הדפים //
$nump $nump $perpage;
if(
intval($nump) != $nump)  
  
$nump intval($nump) + 1;  
for(
$I 1$I<= $nump$I++)
{
  if(
$page != $I)
   echo 
"&lt;A HREF=\"$PHP_SELF?page=$I\"&rt;$I&lt;/A&rt;";
  else
echo 
$I;
  if(
$I != $perpage)
   echo 
" - ";
}  
?>
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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