2012-10-17 5 views
0

기본적으로 저는 PHP가 매우 새로워서 작동하지 않습니다. 오브젝트 내에 오브젝트가 있고 필드에 액세스하려고합니다. MySQL 데이터베이스에서 데이터를 가져옵니다. 줄을 따라 어디에서 오류가 발생하는지 나는 잘 모르겠습니다. 나는 누군가가 내가 만든 무언가의 실수를 지적 할 수 있기를 바랬다. 감사! 여기 객체 내의 PHP 객체

<?php 
    include("Data/Classes.php"); 
    include("Data/Utils.php"); 
    $contacts = listBusinessesWithDefaultContact() or die(); 
?> 
<!DOCTYPE html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Lab 05 - Home</title> 
     <link rel="stylesheet" type="text/css" href="Styles/main.css" /> 
    </head>  
    <body> 
     <div id="Wrapper"> 
      <header> 
       <h1>Contacts</h1> 
      </header> 
      <div id="MainContent"> 
       <img id="bg" alt="Background" src="Images/Ring.png" /> 
       <?php 

        foreach ($contacts as $BusinessWithContact) { 
         echo $contacts->Contact->FirstName; 
        } 

       ?> 
      </div> 
      <nav> 
       <a id="HomeLink" href="index.php"><img alt="Home Image" src="Images/Home.png" /></a> 
       <a id="CreateLink" href="create.php"><img alt="Create Image" src="Images/Create.png" /></a> 
       <a id="ReadLink" href="read.php"><img alt="Read Image" src="Images/Read.png" /></a> 
       <a id="UpdateLink" href="update.php"><img alt="Update Image" src="Images/Update.png" /></a> 
       <a id="DeleteLink" href="delete.php"><img alt="Delete Image" src="Images/Delete.png" /></a> 
      </nav> 
     </div> 
    </body> 
</html> 

는 "Classes.php"의 : 마지막으로

<?php 
    class Business { 
     public $BusinessID; 
     public $BusinessName; 
     public $BusinessPhone; 
     public $BusinessEmail; 
     public $Website; 
     public $Address; 
     public $City; 
     public $Province; 
     public $PostalCode; 
     public $Notes; 

     public function __construct($id, $name, $phone, $email, $website, $address, $city, $province, $postalCode, $notes) { 
      $this->BusinessID = $id; 
      $this->BusinessName = $name; 
      $this->BusinessPhone = $phone; 
      $this->BusinessEmail = $email; 
      $this->Website = $website; 
      $this->Address = $address; 
      $this->City = $city; 
      $this->Province = $province; 
      $this->PostalCode = $postalCode; 
      $this->Notes = $notes; 
     } 
    } 

    class ContactPerson { 
     public $BusinessID; 
     public $ContactID; 
     public $FirstName; 
     public $LastName; 
     public $DefaultContact; 
     public $Email; 
     public $WorkPhone; 
     public $CellPhone; 
     public $Notes; 

     public function __construct ($bid, $cid, $fName, $lName, $dContact, $email, $wPhone, $cPhone, $notes) { 
      $this->BusinessID = $bid; 
      $this->ContactID = $cid; 
      $this->FirstName = $fName; 
      $this->LastName = $lName; 
      $this->Email = $email; 
      $this->WorkPhone = $wPhone; 
      $this->CellPhone = $cPhone; 
      $this->Notes = $notes; 
     } 
    } 

    class BusinessWithContact { 
     public $Business; 
     public $Contact; 

     public function __construct(Business $business, ContactPerson $contact) { 

      $this->Business = $business; 
      $this->Contact = $contact; 
     } 
    } 
?> 

그리고, "Utils.php"

<?php 
    function listBusinessesWithDefaultContact() { 
     $result = array(); 

     $connection = mysql_connect('[connection]', '[user]', '[pass]') or die (mysql_error()); 
     mysql_select_db('[db]') or die (mysql_error()); 

     $dbResult = mysql_query("select * from Business") or die (mysql_error()); 

     while ($row = mysql_fetch_array($dbResult)) { 
      $business = new Business($row['BusinessID'], $row['BusinessName'], $row['BusinessPhone'], $row['BusinessEmail'], $row['Website'], $row['Address'], $row['City'], $row['Province'], $row['PostalCode'], $row['Notes']) or die(); 

      $queryString = "select * from ContactPerson where BusinessID = " . $row['BusinessID'] . " and DefaultContact = 1";   
      $contactResult = mysql_query($queryString) or die(mysql_error()); 

      while ($newRow = mysql_fetch_array($contactResult)) { 
       $contact = new ContactPerson($newRow['BusinessID'], $newRow['ContactPersonID'], $newRow['FirstName'], $newRow['LastName'], $newRow['DefaultContact'], $newRow['Email'], $newRow['WorkPhone'], $newRow['CellPhone'], $newRow['Notes']) or die(); 
      } 

      array_push($result, new BusinessWithContact($business, $contact) or die()); 
     } 

     return $result; 
    } 

    function getContact($contactID) { 
     $result; 

     $connection = mysql_connect('[connection]', '[user]', '[pass]') or die (mysql_error()); 
     mysql_select_db('[db]') or die (mysql_error()); 

     $dbResult = mysql_query("select * from Contacts where ContactID = $contactID"); 

     while ($row = mysql_fetch_array($dbResult)) { 
      $result = new Contact($row['ContactID'], $row['Name'], $row['Phone'], $row['Email'], $row['Website'], $row['ContactFirstName'], $row['ContactLastName'], $row['Address'], $row['City'], $row['Province'], $row['Postal']); 
     } 

     return $result; 
    } 

    function addContact(Contact $item) { 
     $result; 

     $connection = mysql_connect('localhost', 'jschaible1', 'dragunov'); 
     mysql_select_db('jschaible1'); 

     $result = mysql_query("insert into Contact values($item->Name, $item->Phone, $item->Email, $item->Website, $item->ContactFirstName, $item->ContactLastName, $item->Address, $item->City, $item->Province, $item->Postal)");  

     return $result; 
    } 

    function updateContact(Contact $item) { 
     $result; 

     $connection = mysql_connect('[connection]', '[user]', '[pass]') or die (mysql_error()); 
     mysql_select_db('[db]') or die (mysql_error()); 

     $result = mysql_query("update Contact values set Name = $item->Name, Phone = $item->Phone, Email = $item->Email, Website = $item->Website, ContactFirstName = $item->ContactFirstName, ContactLastName = $item->ContactLastName, Address = $item->Address, City = $item->City, Province = $item->Province, Postal = $item->Postal");   

     return $result; 
    } 

    function deleteContact(Contact $item) { 
     $result; 

     $connection = mysql_connect('[connection]', '[user]', '[pass]') or die (mysql_error()); 
     mysql_select_db('[db]') or die (mysql_error()); 

     $result = mysql_query("delete from Contact where ContactID = $item->ContactID");   

     return $result; 
    } 
?> 

편집 : 죄송합니다, 나는 '오류를 명확히하기 위해 내가 얻는 것은 "비 목적 물의 속성을 얻으려고하는 것"이다.

+2

질문을 명확히하십시오. – bogatyrjov

+0

어떤 오류가 있습니까? – Ruben

+0

오류가 있습니까? 여기에 게시하십시오. 아무도 그 코드가 무엇이 잘못되었는지 추측하기 위해 모든 코드를 검토하고있는 것은 아닙니다. –

답변

0

foreach ($contacts as $BusinessWithContact) { 
    echo $contacts->Contact->FirstName; 
} 

$contacts->Contact->FirstName이 (가) $BusinessWithContact->Contact->FirstName이 아닙니다. Contact은 아마도 $contacts의 컨텍스트에있는 개체가 아닙니다.

0

분명히, 나는 Utils.php에

array_push($result, new BusinessWithContact($business, $contact) or die()); 

을 변경하면 작동

$item = new BusinessWithContact($business, $contact); 
array_push($result, $item) or die(); 

에 파일. 왜 그 두 사람이 동일해야합니까?