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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 12-08-07, 10:41   # 1
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

בעיה עם מחלקות בPHP

או קי בניתי את המחלקה הפשוטה הזאת לטיפול במסדי נתונים לפני 10 דקות הכל עבד מעולה פתאום זה לא :S
מה הבעיה??
יש לי 3 קבצים אחד מכיל את המחלקה, database.php
PHP קוד:
class database {
    function 
query($mysql){
        global 
$db_host;
        global 
$db_user;
        global 
$db_pass;
        global 
$db_db;
        
$con = @mysql_connect($db_host$db_user$db_pass) or die(_DB_ERROR01);
        @
mysql_select_db($db_db) or die(_DB_ERROR02);
        return @
mysql_query($mysql$con) or die(_DB_ERROR03);
    }
    function 
fetch_array($mysql){
        return 
mysql_fetch_array(database::query($mysql)) or die (_DB_ERROR03);
    }

קובץ שני הוא הראשי והוא קורא למחלקה ומריץ את השאילתה, index.php
PHP קוד:
include ("config.php");
include (
"classes/database.php");

$sql database::fetch_array("SELECT * FROM test WHERE id = 1");
print_r($sql); 
ויש את קובץ ההגדרות שמכיל את הנתונים להתחברות למסד, config.php
PHP קוד:
$db_host "localhost";
$db_user "*****";
$db_pass "*****";
$db_db "*****"
מישהוא רואה כאן את הבעיה? :\
  Reply With Quote
ישן 12-08-07, 11:01   # 2
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

תוריד את ה@ אתה לא צריך אותם.
ומה הכוונה לא עובד?
וגם עדיף להשתמש ב mysql_fetch_assoc ולא array
  Reply With Quote
ישן 12-08-07, 13:57   # 3
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

קודם כל למה אתה משתמש ב ee::ee זה כבר ישן משתמשים ב new כדי לאתחל..

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

PHP קוד:
<?php

$db 
= new database;

class 
database 
{
    function 
Query($mysql)
    {
                global 
$db_host $db_user $db_pass $db_db;

        
$con mysql_connect($db_host$db_user$db_pass) or die(_DB_ERROR01);
                
mysql_select_db($db_db) or die(_DB_ERROR02);

                return 
mysql_query($mysql$con) or die(_DB_ERROR03);
        }
    
    function 
FetchArray($query)
    {
                return 
mysql_fetch_array($query) or die (_DB_ERROR03);
        }
}  


$query $db->Query("SELECT * .....");
while(
$c $db->FetchArray($query))
{
    ......
}

?>
זה העיקרון תפתח את זה לאיפה שתצטרך..

Last edited by Elad-A; 12-08-07 at 14:08..
  Reply With Quote
ישן 12-08-07, 16:48   # 4
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

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

אלעד השיטה שלך היא בערך השיטה המקורית שלי פשוט חשבתי לחסוך קוד ולהפוך אותו ליותר אסטתי על ידי הכנסה של פונקצית השאילתה ישר לתוך הפונקציה של הfetch array

ואלעד גם עם כל מה שאמרת:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /****/***/**********/***/classes/database.php on line 18

שורה 18
PHP קוד:
return mysql_fetch_array($mysql) or die (_DB_ERROR03); 

Last edited by DCB; 12-08-07 at 16:55..
  Reply With Quote
ישן 12-08-07, 16:57   # 5
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

תציג את כל הקוד שלך, זה יעזור יותר.
ומה שהבאתי לך זה בסך הכל דוגמא שתראה איך זה בנוי..

וד"א בפונקציה FetchRow שכחתי לשים global להתחברות בגלל זה השגיאה.

Last edited by Elad-A; 12-08-07 at 16:59..
  Reply With Quote
ישן 12-08-07, 16:59   # 6
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

זה כל הקוד מה שהראתי לכם.
(זאת שורה 18 כי יש למעלה הסברים על הקובץ ואיך להשתמש בו אל תתייחס)
  Reply With Quote
ישן 12-08-07, 17:02   # 7
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

אממ קח מחלקה שפעם השתמשתי בה:

PHP קוד:
<?php

$db 
= new mysql;

class 
mysql 

    function 
Connect($host$name$pass$db)
    { 
        
$connection mysql_connect($host$name$pass); 
          
mysql_select_db($db$connection); 
    }
 
    function 
FetchRow($query)
    { 
        
$rows mysql_fetch_row($query); 
        return 
$rows
    } 
    function 
FetchArray($query)
    { 
        
$array mysql_fetch_array($query); 
        return 
$array
      } 

    function 
FetchNum($query)
    { 
        
$num mysql_num_rows($query); 
        return 
$num
    } 
  
    function 
Query($sql)
      { 
          
$query mysql_query($sql) or die(mysql_error()); 
          return 
$query
    }
}

?>
בקובץ global.php שלך תשים ככה:

PHP קוד:

// the user name of the mysql data base
$DataBase['user'] = "root";

// the password of the mysql data base
$DataBase['pass'] = "";

// the name of the mysql data base
$DataBase['name'] = "xyz";

// the host of the mysql data base, default: "localhost"
$DataBase['host'] = "localhost";

$DB->Connect($DataBase['host'], $DataBase['user'], $DataBase['pass'], $DataBase['name']); 
ככה זה יחסוך לך התחברות למסד כל פעם, אני מאמין שמפה אתה תסתדר כבר..
  Reply With Quote
ישן 12-08-07, 17:05   # 8
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

תודה אלעד אבל בכל זאת מישהוא רואה את הבעיה?
אני מנסה להבין מה הולך פה :\
  Reply With Quote
ישן 12-08-07, 17:06   # 9
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

אני חושב שבגלל שלא שמת global בפונקציה וגם לא התחברת למסד בכלל..

תנסה ככה:

PHP קוד:
    function fetch_array($mysql){
        global 
$db_host $db_user $db_pass $db_db;
        
$con = @mysql_connect($db_host$db_user$db_pass) or die(_DB_ERROR01);
        @
mysql_select_db($db_db) or die(_DB_ERROR02);
        return 
mysql_fetch_array(database::query($mysql)) or die (_DB_ERROR03);
    } 

Last edited by Elad-A; 12-08-07 at 17:09..
  Reply With Quote
ישן 12-08-07, 17:17   # 10
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

אלעד תודה על הנסיון אבל אתה זורק ניחושים לאוויר ועדיין אותה שגיאה חוזרת...
תסתכל שוב על הפונקציות והמחלקה שלי..
הגדרתי אותם כglobal אני ניגש למחלקה בצורה נכונה הכל לפי הספר...
  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. הזמן כעת הוא 13:07.

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