![]() |
[PHP] בדיקת טבלאות
איך אפשר לבדוק אם ישנה טבלא קיימת בשם שאני רוצה ליצור טבלא?
דרך PHP כמובן |
קוד:
$sql = "SELECT * FROM `tbl_name` ORDER BY `id` DESC"; |
אני חושב שיש פשוט פונקציה שבודקת -
תעשה דרך ה phpmyadmin ייצוא של איזה טבלה - ויש שם אפשרות לסמן שזה יבדוק אם טבלה קיימת - אח"כ תיגש לקוד ותראה מה הפקודה שבודקת אם טבלה קיימת. או שתחכה עוד כמה דקות פה אני בטוח שמישהו יסביר בדיוק איך. |
ישנה אפשרות לעשות את הקוד הבא בשאילתה:
PHP קוד:
עריכה: Eli-Hai- הפתרון שהצעת אני לא חושב שהוא נכון, כי אם יש טבלה אבל היא ריקה, אז הוא יציג שהיא לא קיימת. |
אפשר לעשות שאילתה "SHOW TABLES"
ואז לראות אם הטבלה קיימת. בעזרת SUBSTR או STRSTR |
אז איך עושים?
הפתרון הראשון לא נראה לי.. אני צריך לעשות חיפוש בכל המסד |
אמרתי לך, תשתמש ב SHOW TABLES ותמשוך אותו לתוך מערך ותבדוק אם קיים
עשיתי את הקוד בדיוק ב 5 דקות... |
מזה SHOW TABLES?
|
מצטער, שרשרתי בטעות פה.
נא למחוק את התגובה בבקשה. |
אני מציע שתנסה להריץ את השאילתא הזאת על המסד ותראה
הפקודה מחזירה את שמות הטבלאות שקיימות. |
אני אומר שאני לא מכיר אותה
|
ציטוט:
מה לא מכיר אותה ? קשה לעשות mysql_query(SHOW TABLES ולראות מה אתה מקבל ? מספיק עם השטויות אתה רוצה שייתנו לך את התשובה וזהו תריץ את השאילתה ותעשה ניסיונות לא הולך לך ? יש הרבה מידע ב גוגול ובמיוחד ב www.mysql.com רק צריך לחפש... |
התגובות שכללו קוד נמחקו.
ofek_golan: אני מציע לך להפסיק לבקש קודים. נתנו לך הוראות מדוייקות מה לעשות, תסתדר איתם. |
למה מחקת את הקוד שאני כתבתי אני כתבתי בשביל לראות אם הוא טוב אז מה אתה מוחק לי אותו?
|
ציטוט:
|
רוצה להתערב הוא היה שונה הקוד שנתנו לי היה לעשות מערכת מרשימת הטבלאות והקוד שלי הוא לעשות שורות ואני כן אתווכח איתך כי אתה סתם מוחק בלי לקרוא כלום
|
אוקיי, אז אני אענה לך: הקוד שעשית לא טוב. תעבור שוב על כל מה שהציעו לך פה באשכול ותבנה לעצמך קוד.
|
אפשר לדעת מה רע בו?
כאילו הוא קודם עושה PHP קוד:
ואז הוא בודק אם זה מעל 1 אז יש טבלא בשם הזה ואם זה מתחת ל1 אז אין |
ציטוט:
|
ציטוט:
|
הנה תראה את הכל
PHP קוד:
|
ציטוט:
אתה צריך לקחת את מה ש SHOW TABLES מחזיר לך לתוך מערכת ולבדוק אם הטבלה שאתה צריך קיימת. |
כאילו אותו קוד רק להוריד את הFROM?
אז איך אני משווה בשמות? |
תשמור במערך את כל הטבלאות ואז תעשה בדיקה לפי IN_ARRAY
או שבתוך הלולאה של הWHILE תשווה... עדיפות לשימוש ב STRSTR כי הוא נותן לך גם את השם של המסד בתוצאה |
ציטוט:
אתה חותר כאן לבקש קוד, שזה דבר אסור כאן בפורום. אני מבקש מכולם: באשכול הזה ספציפית לא יינתן שום קוד, ואני מתכוון לשום קוד |
תראה אופק...אנשים מסבירים לך...יש לך שיאלתה...SHOW TABLES...כשאתה מוסיף לו FROM X זה יראה לך את הטבלאות שנמצאות במסד X...מסקנה: לא צריך FROM X...כלומר השיאלתה שלך זו רק SHOW TABLES...
|
זה מה שאמרתי שהקוד שרשמתי נכון ורק צריך להוריד את הFROM..
לא ביקשתי קוד ביקשתי עזרה בתיקון שלו |
ציטוט:
|
לא אמרתי שתוריד שאלתי אם התיקון הזה נכון מאיפה אתה למדת לקרוא?
|
ציטוט:
- שלוף את כל הטבלאות מהמסד בשם db-name - תכניס את שמות הטבלאות למערך - תרוץ על המערך ותחפש איבר במערך שיהיה שווה ל tbl-name (הטבלה שאתה רוצה לבדוק האם היא קיימת) במידה ומצאת טבלה כזו, צא מהלולאה (אין טעם להמשיך הרי).. |
ציטוט:
|
ציטוט:
הפקודה SHOW TABLES מחזירה הרבה שורות כמו SELECT * FROM TABLE אז אתה חייב פה WHILE |
איך אני מכניס את כל התוצאות של השאילתא למערך? עם לולאה?
|
אההם...mysql_fetch_array
יכול להיות שאני טועה...יש לי נידודי שינה =/ לא מצליח להירדם..בעעע |
מצטער RS324 הקוד שלך נמחק. ביקשתי לא לתת לבחור קודים באשכול הזה.
|
ציטוט:
|
ציטוט:
מצטער לא שמתי לב |Rolleyes| |
כל הזמנים הם GMT +2. הזמן כעת הוא 12:20. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ