2016-12-05 9 views
0

사용자는 로그인되어있는 동안 페이지에서 자신의 사용자 이름을 변경할 수 있습니다. 로그인 한 사용자는 $ _SESSION [ 'userSession'] 그의 user_id 값 (1, 2, 3, ...)으로 설정하십시오. 별도로 데이터베이스에 저장 일부 사용자 정보가 XML 파일에 저장됩니다에서 PHP를 사용하여 XML 요소를 반복하고 자식 요소를 찾습니다. innerHTML

는 too.When 사용자는 '나는 일치 XMLELEMENT에게 (요소를 식별하는 문제를
  • 을 가지고, 자신의 이름을 변경 USER_ID '아이의'계정 '[사용자 세션'])

  • 변경 특정 XMLelements 다른 차일 값 합니다 (innerHTML을을 변경하려면 innerHTML을 == $ _SESSION을 포함 ' 다른 아이 innerHTML을 == $ _SESSION의 'user_id를'[ '사용자 세션을'])이 요소 '계정'의 아이 '이름'의

는 지금 내 코드는 첫 번째 사용자를 위해 작동하는 user_id가 '1'- 모든 계정 요소를 통해 일종의 루프를 수행해야합니다. 그리고 이것은 내가 붙어있는 곳입니다. 내 현재 PHP 코드은 다음과 같습니다

 include '../php/dbconnect.php'; 
     $DBcon->query("UPDATE tbl_users SET username = '$newuname' WHERE user_id=".$_SESSION['userSession']); 
     $DBcon->close(); 

     $xml = simplexml_load_file('../xml/accounts.xml'); 
     $account = $xml->account; 
      if($account->user_id == $_SESSION['userSession']) { 
       $account->username = $newuname; 
      } else { 
      } 
     file_put_contents('../xml/accounts.xml', $xml->asXML()); 

XML 파일은 다음과 같습니다

<data> 

    <account> 
     <username>KingKarl</username> 
     <user_id>1</user_id> 
     <blogname>YummyYummy</blogname> 
    </account> 

    <account> 
     <username>MacMarty</username> 
     <user_id>2</user_id> 
     <blogname>FreaksOnTour</blogname> 
    </account> 

    <account> 
     <companyname>BungeeTours</companyname> 
     <user_id>3</user_id> 
     <blogname>FreeFalling</blogname> 
    </account> 


</data> 

누군가가 나에게 설명 할 수, 나는 모든 계정 요소를 통해 루프는 방법을 찾을 수 있습니다 다른 아이들과 일치하고 내부 HTML을 변경하십시오.

미리 감사드립니다.

답변

0

가 여기에 적절한 코드입니다 :

$xml = simplexml_load_file('../xml/accounts.xml'); 
// iterate over each `$xml` node which is `account` 
foreach ($xml as $account) { 
    // if current account user_id is found - change value 
    if($account->user_id == $_SESSION['userSession']) { 
     $account->username = $newuname; 

     // use break so as not to check other nodes 
     break; 
    } 
    // empty `else` part is useless, omit it 
} 
file_put_contents('../xml/accounts.xml', $xml->asXML()); 
+0

덕분에 완벽 그게 작품! – Maxischl