View Single Post
ישן 25-01-12, 16:38   # 6
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

ציטוט:
נכתב במקור על ידי Itay צפה בהודעה
http://phpguide.co.il/%D7%97%D7%99%D...7%9C%D7%90.htm
יש פה הסבר די טוב על זה

זה הרבה יותר יעיל ומדוייק מלהשתמש בלייק, אבל בכל מקרה - את מה שאמרת עושים ככה:
PHP קוד:
<?php
$args 
= array('title''body''author'); // השמות של השדות בדאטהבייס
$query explode(' 'urldecode($_GET['q']));
$where = array();
$where[] = "1"// למקרה שאין כלום בשאילתה, תמיד אפשר לעשות WHERE 1 בלי שיקרה כלום
foreach($args AS $arg)
{
    
$curRun = array();
    foreach(
$query AS $word)
    {
        
$curRun[] = $arg." LIKE '%".mysql_real_escape_string($word)."%'";
    }
    
$where[] = "(".implode(" OR "$curRun).")";
}
$results mysql_query("SELECT * FROM table WHERE ".implode(" OR "$where));
?>
וכמובן שאתה יכול להחליף את ה-OR למ-AND אם זה מה שאתה מעדיף - אבל שוב, זה הרבה פחות יעיל

תודה אבל החיפוש ממש גרוע!
זה הקוד:

$args = array('title'); //
PHP קוד:
השמות של השדות בדאטהבייס
$query 
explode(' 'urldecode($_GET['q']));
$where = array();
$where[] = "1"// למקרה שאין כלום בשאילתה, תמיד אפשר לעשות WHERE 1 בלי שיקרה כלום
foreach($args AS $arg)
{
    
$curRun = array();
    foreach(
$query AS $word)
    {
        
$curRun[] = $arg." LIKE '%".mysql_real_escape_string($word)."%'";
    }
    
$where[] = "(".implode(" OR "$curRun).")";
}
$results mysql_query("SELECT title FROM tutorials WHERE ".implode(" OR "$where));


while(
$rs mysql_fetch_array($results)) {
    
$cname $rs['title'];
    echo 
"$cname\n";

אם יש לי דבר כזה:

How to plan amazing trip

ואני מחפש: how to amazing
זה לא מוצא..למה?
תודה.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote