הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   חיפוש לפי תגים (https://hosts.co.il/forums/showthread.php?t=56342)

Ori The Man 11-11-07 16:37

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

ונגיד אני רושם שמש איך זה ימצא דווקה אותו?
לעשות טבלה עם כל התגים והיא תעבור אחד אחד?
לא ניראה לי יעיל במיוחד
אני יודע שמשתמשים ב LIKE בשאילתה נכון?

Rom 11-11-07 18:48

יש לך רשימה של פוסטים
לכל פוסט יש שורה של תגים
ואז בחיפוש אתה קורא לכל הפוסטים שיש בשורת תגים שלהם את הערך שרשמת בחיפוש.
ואת זה אתה עושה ע"י LIKE, אתה יכול לקרוא על LIKE כאן: http://www.sql-tutorial.net/SQL-LIKE.asp או שפשוט תחפש SQL LIKE בגוגל.

RS324 11-11-07 20:29

אפשר גם עם IN()

חיים 11-11-07 21:43

ציטוט:

נכתב במקור על ידי Rom (פרסם 577698)
יש לך רשימה של פוסטים
לכל פוסט יש שורה של תגים
ואז בחיפוש אתה קורא לכל הפוסטים שיש בשורת תגים שלהם את הערך שרשמת בחיפוש.
ואת זה אתה עושה ע"י LIKE, אתה יכול לקרוא על LIKE כאן: http://www.sql-tutorial.net/SQL-LIKE.asp או שפשוט תחפש SQL LIKE בגוגל.

קוד דוגמה:
קוד:

SELECT * FROM table WHERE description LIKE '%שמש%'
זה בידיוק כמו שאמרת אם הבנתי אותך נכון...

Rom 11-11-07 21:54

ציטוט:

נכתב במקור על ידי חיים (פרסם 577779)
קוד דוגמה:
קוד:

SELECT * FROM table WHERE description LIKE '%שמש%'
זה בידיוק כמו שאמרת אם הבנתי אותך נכון...

אם description זה הרשימת תגים אז כן, לזה התכוונתי.
וRS324 מה זה IN()?

Ori The Man 12-11-07 00:05

אני יודע איך הולך ה like
אבל הקטע של היעילות
אני לא רוצה טבלה עם מליון תגיות בניפרד אני יכול לעשות ישר like עם הרשימה של התגיות מופרדות בפסיק (זה ימצא את המילה שם ויציג?) או שאני יצתרך לעשות explode וזה יבדוק מילה מילה של התגיות

Rom 12-11-07 01:42

אתה פשוט עושה LIKE בלי explode ואתה מקבל את כל הפוסטים שיש להם את התג ששווה לLIKE שרשמת.
זה בידיוק כמו WHERE name = "Jack" רק שימוש בLIKE.

Ori The Man 12-11-07 02:25

אבל יש לי רשימה של
ים,שמש,חול,שמיים
וחיפשתי שמש
זה יעשה בדיקה ב like ל ים,שמש,חול,שמיים זה עדיין ימצא לי את זה? כי עם explode זה יעשה לי like לכל מילה בניפרד

Rom 12-11-07 10:50

שאתה משתמש בexplode אתה כבר לא חייב LIKE (כמובן שעדיף אם אתה רוצה לעשות את שזה ימצא גם חלקי תגים).
אבל אם אתה מגדיר לשאילתה לקרוא רק ל"שמש" ואתה משתמש בLIKE אז זה ימצא לך את "ים,שמש,חול,שמיים".
תנסה ותבדוק את זה.

RS324 13-11-07 00:12

ציטוט:

נכתב במקור על ידי Rom (פרסם 577784)
אם description זה הרשימת תגים אז כן, לזה התכוונתי.
וRS324 מה זה IN()?

ציטוט:

נכתב במקור על ידי Ori The Man (פרסם 577858)
אני יודע איך הולך ה like
אבל הקטע של היעילות
אני לא רוצה טבלה עם מליון תגיות בניפרד אני יכול לעשות ישר like עם הרשימה של התגיות מופרדות בפסיק (זה ימצא את המילה שם ויציג?) או שאני יצתרך לעשות explode וזה יבדוק מילה מילה של התגיות

כל האלה שאמרו EXPLODE וכד'
הלכתם יותר מידי רחוק

אני אתן לך דוגמא הכי פשוטה

יש לי מערכת משתמשים
ויש לי רק 7 משתמשים מורשים להתחבר למקום מסויים - סתם לצורך הדוגמא
וזה ה USER IDS שלהם : 1,5,1000,33,22,77

איך אתה בוחר אותם ? מה תעשה EXPLODE ותעשה שאילתה על כל אחד מהם ? ממש לא

PHP קוד:

$allowedUsersIDs '1,5,1000,33,22,77';

$users =  $db->query("SELECT username FROM users WHERE userid IN($allowedUsersIDs)");

while (
$user $db->fetch($users))
{
    
print_r($user);


מקווה שהרעיון מובן. תקח את זה ותפתח את זה כמובן לכיוון שלך אני רק נתתי לך את הדוגמא הכי פשוטה שתעזור לך להמשיך.

snirk 13-11-07 00:28

ציטוט:

נכתב במקור על ידי RS324 (פרסם 578248)
כל האלה שאמרו EXPLODE וכד'
הלכתם יותר מידי רחוק

אני אתן לך דוגמא הכי פשוטה

יש לי מערכת משתמשים
ויש לי רק 7 משתמשים מורשים להתחבר למקום מסויים - סתם לצורך הדוגמא
וזה ה USER IDS שלהם : 1,5,1000,33,22,77

איך אתה בוחר אותם ? מה תעשה EXPLODE ותעשה שאילתה על כל אחד מהם ? ממש לא

PHP קוד:

$allowedUsersIDs '1,5,1000,33,22,77';

$users =  $db->query("SELECT username FROM users WHERE userid IN($allowedUsersIDs)");

while (
$user $db->fetch($users))
{
    
print_r($user);


מקווה שהרעיון מובן. תקח את זה ותפתח את זה כמובן לכיוון שלך אני רק נתתי לך את הדוגמא הכי פשוטה שתעזור לך להמשיך.

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

4ior 13-11-07 14:57

תעשה עם IN..

RS324 13-11-07 19:49

ציטוט:

נכתב במקור על ידי snirk (פרסם 578253)
סליחה שאני נדחף |מסמיק| , אבל גם אני בסוג של "בעיה" כזאת...
עם אני רוצה לבצע חיפוש לפי מספר משתנים.
לדוגמא אני רוצה לחפש בן אדם לפי שם פלאפון וכתובת..
אני עושה את זה באותה הצורה?

למה להשתמש ב IN ?

PHP קוד:

$phone '0505123123';
$address 'sweet home Canada';
$name 'myname123'

$db->query_fetch("SELECT * FROM users WHERE phone='$phone' AND username='$name' AND address LIKE '%$address%' ORDER BY userid DESC LIMIT 1 "); 

משהו כזה בערך

snirk 13-11-07 20:13

ציטוט:

נכתב במקור על ידי RS324 (פרסם 578463)
למה להשתמש ב IN ?

PHP קוד:

$phone '0505123123';
$address 'sweet home Canada';
$name 'myname123'

$db->query_fetch("SELECT * FROM users WHERE phone='$phone' AND username='$name' AND address LIKE '%$address%' ORDER BY userid DESC LIMIT 1 "); 

משהו כזה בערך


בדיוק זה כבר מה שעשיתי...
עשיתי משהו כזה:
PHP קוד:

$query_InstertToSql "SELECT * FROM search1 WHERE cboGenralPracticeArea LIKE '$cboGenralPracticeArea' AND cboSpecPracticeArea LIKE '$cboSpecPracticeArea' AND cboCity LIKE '$cboCity' AND cboLanguagesSpoken LIKE '$cboLanguagesSpoken' AND cboLawSchool LIKE '$cboLawSchool' AND cboMajorMemberships LIKE '$cboMajorMemberships' AND cboBoardMemberShip LIKE '$cboBoardMemberShip' AND cstreet LIKE '$cstreet' AND cphone LIKE '$cphone' AND cname LIKE '$cname' AND cltdname LIKE '$cltdname' ORDER BY sid DESC"

בכול מקרה תודה.

RS324 14-11-07 16:57

ציטוט:

נכתב במקור על ידי snirk (פרסם 578470)
בדיוק זה כבר מה שעשיתי...
עשיתי משהו כזה:
PHP קוד:

$query_InstertToSql "SELECT * FROM search1 WHERE cboGenralPracticeArea LIKE '$cboGenralPracticeArea' AND cboSpecPracticeArea LIKE '$cboSpecPracticeArea' AND cboCity LIKE '$cboCity' AND cboLanguagesSpoken LIKE '$cboLanguagesSpoken' AND cboLawSchool LIKE '$cboLawSchool' AND cboMajorMemberships LIKE '$cboMajorMemberships' AND cboBoardMemberShip LIKE '$cboBoardMemberShip' AND cstreet LIKE '$cstreet' AND cphone LIKE '$cphone' AND cname LIKE '$cname' AND cltdname LIKE '$cltdname' ORDER BY sid DESC"

בכול מקרה תודה.

שים לב להבדלים בנינו...


כל הזמנים הם GMT +2. הזמן כעת הוא 07:20.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ