הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 10-12-10, 03:04   # 11
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 564

Itay לא מחובר  

BlueNosE - זה בדיוק למה התכוונתי בהתחלה לתחום את זה ב-||, אבל נראה לי שעם OR LIKE זה לא יעבוד, זה פשוט יתן לי כל דבר שאחד מהאיידיים נמצא בהם.

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

נגיד שהמשתמש הכניס שיש לו עט, עיפרון, מחק, שולחן.
אני רוצה שזה ישלוף לי שורה שהאיידיים שלה מורכבים מ-שולחן, מחק, עיפרון.
  Reply With Quote
ישן 10-12-10, 13:51   # 12
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

PHP קוד:
$user_selected = array("שולחן","מחק","עיפרון"); # user selected items
$this_selected implode($user_selected);
mysql_query("SELECT * FROM `table` WHERE `id` IN(" .$this_selected")"); 
בשביל להכניס את הדברים שהוא בחר למערך (במידה ואתה רוצה) תשתמש בexplode()
זה אמור לבצע את העבודה
  Reply With Quote
ישן 10-12-10, 13:54   # 13
Hagaibl
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Jul 2010
הודעות: 214

Hagaibl לא מחובר  

ציטוט:
נכתב במקור על ידי Hanino צפה בהודעה
PHP קוד:
$user_selected = array("שולחן","מחק","עיפרון"); # user selected items
$this_selected implode($user_selected);
mysql_query("SELECT * FROM `table` WHERE `id` IN(" .$this_selected")"); 
בשביל להכניס את הדברים שהוא בחר למערך (במידה ואתה רוצה) תשתמש בexplode()
זה אמור לבצע את העבודה
אתה מכניס מערך למערך? בישביל מה?
__________________
בברכה,
חגי בלוך גדות.
  Reply With Quote
ישן 10-12-10, 14:55   # 14
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 564

Itay לא מחובר  

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

ושוב - אם מישהו מכיר דרך לעשות את זה אני אשמח לעזרה. יכול להיות שאפשר עם JOIN - אבל אני ממש לא מבין בחלק הזה של ה-SQL אז אין לי מושג.
  Reply With Quote
ישן 10-12-10, 15:08   # 15
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

עשיתי טעות קטנה
במקום
$this_selected = implode($user_selected);
צריך לחליף ב
$this_selected = implode(",",$user_selected);

וזה בתור מערך לחיפוש
תוכל לעשות עם פוסטים ולהפריד אותם עם פסיק והלשתמש בIN
  Reply With Quote
ישן 10-12-10, 16:02   # 16
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 31
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי Itay צפה בהודעה
ה-implode פה לא משנה - עשיתי בדיקה כשזה בצורה ידנית.. הוא בכל מקרה יתן לי תוצאה של "שולחן, מחק, עיפרון" (במקרה שלך בלי הפסיקים), וכמו שהבאתי דוגמא אני כבר עשיתי את זה קודם.
ה-IN פה לא נראה לי יעזור, לצערי אני מאמין שגם ה-OR LIKE, למרות שעדיין לא בדקתי אבל זה לא אמור לעבוד.

ושוב - אם מישהו מכיר דרך לעשות את זה אני אשמח לעזרה. יכול להיות שאפשר עם JOIN - אבל אני ממש לא מבין בחלק הזה של ה-SQL אז אין לי מושג.
יעבוד עם AND like אם אתה צריך שכולם מהרשימה יופיעו
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 10-12-10, 16:19   # 17
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

ציטוט:
נכתב במקור על ידי BlueNosE צפה בהודעה
יעבוד עם AND like אם אתה צריך שכולם מהרשימה יופיעו
יש דרך טיפה יותר טובה

אם אתה שומר STRING של ID פשוט תפריד בניהם עם ,(פסיק)

ואז בשאילת תחפש WHERE FIND_IN_SET
וזה יימצא לך בדיוק מה שאתה מחפש....
  Reply With Quote
ישן 10-12-10, 16:19   # 18
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 564

Itay לא מחובר  

אני לא צריך שכולם יופיעו. אני צריך שרק חלק או כולם יופיעו, מתוך הרשימה שאני נותן.
ושוב אני אתן את הדוגמא של השולחן:
יש לי בטבלה 3 שורות:
1. שולחן, עיפרון, עט, מחק, מנורה
2. שולחן, עט
3. שולחן, מחק, עיפרון, משקפיים

אני נותן לו בחיפוש את הערכים הבאים: "שולחן, מחשב, עט, מנורה, מטען, עיפרון, מחק"
אני רוצה שהוא יחזיר לי את שורות 1 ו-2. שים לב שהדברים לא מסודרים בסדר מסויים, והתוצאות לא חייבות להיות מורכבות מכל הערכים של החיפוש, אבל הן צריכות להיות מורכבות רק ממה שהמשתמש הכניס. בדוגמא המשתמש לא הכניס "משקפיים" אז התוצאה השלישית לא מוצגת.

ו-Hanino, אתה נשאר על אותו עניין של ה-IN שכבר הסברתי שלא עובד
  Reply With Quote
ישן 10-12-10, 16:31   # 19
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 564

Itay לא מחובר  

ציטוט:
נכתב במקור על ידי RS324 צפה בהודעה
יש דרך טיפה יותר טובה

אם אתה שומר STRING של ID פשוט תפריד בניהם עם ,(פסיק)

ואז בשאילת תחפש WHERE FIND_IN_SET
וזה יימצא לך בדיוק מה שאתה מחפש....
ניסיתי לעשות את השיאלתה הזאת:
קוד:
"SELECT * FROM TST WHERE FIND_IN_SET(ContIds, '1,2,3,4,5,6,7,8,9,10,11,12')"
יש לי בטבלה 2 שורות:
1. 1,2,4,7,8,3,11,
2. 1,2,3,4,7,5,6,10,8,9,11,12,

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

עריכה:
גם כשהחלפתי ל-SET בשביל לבדוק
קוד:
set('1','2','3','4','5','6','7','8','9','10','11','12','13','14')
והשורות עכשיו הן
1. 1,3,5,7
2. 1,2,3,4,5,6,7,8,9,10,11,12,13,14

זה עדיין לא עובד לי, גם כשאני מציין בדיוק את הערכים של שורה 1

עוד עריכה:
אם זה יעזור, אני צריך נגיד דרך להשתמש ב-LIKE אבל הפוך, כלומר משהו כזה:
קוד:
WHERE '|1||2||3||4||5||6||7||8||9|' LIKE '%ContIDs%'
כשה-ContIDs יהיה מופרד, נגיד הוא מכיל 1,3,5 אז זה יצא משהו כזה:
קוד:
WHERE '|1||2||3||4||5||6||7||8||9|' LIKE '%|1|%' AND LIKE '%|3|%' AND LIKE '%|5|%'

Last edited by Itay; 10-12-10 at 17:36..
  Reply With Quote
ישן 10-12-10, 16:35   # 20
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 31
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי RS324 צפה בהודעה
יש דרך טיפה יותר טובה

אם אתה שומר STRING של ID פשוט תפריד בניהם עם ,(פסיק)

ואז בשאילת תחפש WHERE FIND_IN_SET
וזה יימצא לך בדיוק מה שאתה מחפש....
וואו, תסביר מהר, זה ממש מקל על השימוש בתגיות והכל
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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