![]() |
PHP CHECKBOX - נושא קצת מורכב ובעייתי
אני יושב על זה כמה שעות כבר ולא עולה לי לראש כלום,
יש לי את הקוד הבא: HTML קוד:
<td><input type="checkbox" name="permissions[]" value="1|" /> כללי</td> ניסיתי עם כל מיני דרכים, foreach, explode, implode, while הצלחתי להשיג את הנתונים בצורה שאני רוצה עם while ו foreach אבל לא הצלחתי להוציא אותם מחוץ ללולאות. |
הסתדרתי, תודה.
|
תספר לכולם איך חחח,שאחרים שיתקלו בבעיה ידעו גם איך
|
PHP קוד:
הגדרתי את המשתנה $per כריק, בשביל להשתמש בו בלולאה.. ביצעתי לולאה (foreach) על כל התיבות שהתקבלו בטופס ומכל אחד לקחתי את התוכן למשתנה $value שמתי למשתנה per אופרטור נקודה כדי שיתן את כל הנתונים שהתקבלו מהשדות טקסט ולא רק אחד .., מן הסתם הוא חיבר אותם ועשה אותם בצורה הזו "1|2|3|5|".. וזהו בגדול, זה מה שעשיתי כדי להוציא את כל הנתונים . --- מה שאני כותב עכשיו זה כבר משהו אחר --- __________________________________________ אבל יש לי בעיה, לא הגעתי עדיין למה שאני צריך. נניח שיש לי את המשתנה $per שהוא בעצם מערך, איך אני יכול לבדוק אם מה שיש בו שווה לאחד מהערכים "1,2,3,5" מבלי להשתמש בו בצורה הבאה: PHP קוד:
מקווה שמישהו הבין אותי ויוכל לעזור לי, כי זה קצת מסובך להסביר את זה, אבל ניסיתי בצורה הכי טובה שאני יכול..:-) |
למה שלא תשאיר את מה שאתה מקבל כמערך ותבדוק אם הערך קיים שם ע"י in_array?↳
וד"א תוריד את הקווים האלה שם.. |
אני רוצה לבדוק אם יש למשתמש X הרשאות ל X, Y ו Z נגיד..
יש לי את הקוד הבא, שלוקח את המשתמש שמחובר ומוציא את ההרשאות שלו, זה הקוד: PHP קוד:
עכשיו אני רוצה לבדוק איזה הרשאות יש למשתמש המחובר ובהתאם להציג לו את הפרטים שיש לו גישה אליהם .. נ.ב לגבי ה | (קווים האלה) ב- value של ה checkbox אני אוריד אותם זה זמני, אני אשתמש ב implode אחר כך כדי להוסיף אותם לפני שהנתונים נכנסים למסד.. |
כמו שאמרו פה - אתה יכול להשתמש ב-in_array
אבל לדעתי יותר פשוט ויחסוך לך קוד - פשוט תשתמש ב-strstr על הערך מהבסיס נתונים, בלי להפוך אותו למערך.. אתה יכול גם להשתמש ככה בתו שהכנסת לפני כדי לדעת שמדובר נגיד במספר 1 ולא במספר 10 |
אוקי לא הצלחתי, לא הלך לי, ניסיתי כל מיני דרכים, כל מיני פונקציות, וגם עם מה שהצעתם in_array ו strstr ועוד ..
למישהו יש רעיון איך להשוות נתונים ? אם יש לי טבלה של משתמשים במסד, ויש בה שדה של הרשאות, ההרשאות הם בתבנית הבאה "1|2|3|4|5|6|7|8|9|10" לכל משתמש יש הרשאות שונות, זאת אומרת יכול להיות לאחד את כל ההרשאות ולמשתמש אחר רק "1|2|3|4|5" או "1|2|5|7"... מה שאני צריך לעשות, זה לבדוק אם יש לכל משתמש הרשאה X לא הצלחתי ניסיתי עם כל מיני דרכים, גם לולאות כמו שכתבתי כבר.. בסך הכל צריך להשוות, משהו בסגנון הזה PHP קוד:
|
PHP קוד:
|
זה לא טוב עם strstr, אני יכול לבנות פונקציה שתבדוק אם יש פרמטר מסויים לפני או אחרי פרמטר אחר
אבל זה לא עוזר לי, כי לאחד יכול להיות הרשאות "1|2|3" ולאחר "2|5|9".. |
נניח שלאזור מסויים אתה רוצה לדעת לאיזה משתמשים יש הרשאה
(נניח שהאזור הוא 5) אז אתה יכול להשתמש בפונקציה של MYSQL שנקראת FIND_IN_SET שהיא מחפשת בדיוק בסטרינג כמו שלך (אבל מומלץ להשתמש ב פסיקים ולא בקו וגם להגדיר את השדה כ SET לשיפור ביצועים) עכשיו אם יש לך USERINFO מסויים פשוט תעשה EXPLODE ל , שזה יהפוך להיות מערך ותעשה בדיקה באמצעות IN_ARRAY זה הכל (אם לא עובד לך כנראה עשית משהו לא טוב בדרך). |
PHP קוד:
|
משום מה זה לא עובד
PHP קוד:
PHP קוד:
מישהו יודע איפה הבעיה כאן ? |
כי אין משתנה id בפונקציה השניה..
אם המשתנה id הוא חלק מהמחלקה אתה צריך לקרוא לו כך - PHP קוד:
(לשנות את PHP קוד:
PHP קוד:
|
זה לא מה שאני צריך..
הבעיה שלי היא זאת: יש לי במסד שדה permissions שהנתון שמאוחסן בו הוא "1|2|3|4|5|6|7|8|9|10" (זה יכול להיות גם אחרת, אבל זאת התבנית) עכשיו אני צריך לייצא את זה כמערך שיצא בצורה כזאת: PHP קוד:
תוכלו לראות את הדוגמה למעלה בהודעה הקודמת שלי. |
תעשה PRINT $result['permissions'];
יש מצב שאתה נכשל בשאילתא עצמה והוא לא מחזיר לך כלום... |
אין בעיה בשאילתא, לפני ה explode הוא מוציא לי את הנתונים שיש בשדה permissions
אחרי ה explode הוא כותב לי Array (מערך). |
כל הזמנים הם GMT +2. הזמן כעת הוא 22:22. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ