2016-04-06 12 views
-1

私はアンドロイドの開発者ですので、私はPHPをよく理解していません。 PHPを使用してXMLデータをデータベースに入力しようとしています。私は他の例を見ていますが、私の場合は何ができるのでしょうか。PHPを使用してxmlサービスを解析してデータベースに挿入する方法

XMLリンク:http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17

PHPコード:私が取得し、データベース内のデータを設定するために定義することができるものをここで 。私は以下のコードが正しくないことを知っています。オプトオブジェクトと他の私のSQLクエリを確認してくださいそれぞれのループの私の修正してください。

<!doctype HTML> 
    <html> 
    <head> 
    <?php 
    header('Content-Type: application/xml; charset=utf-8'); 
    $mysqli = new mysqli ('localhost', 'mabhim92', '9993115300', 'gcm_chat'); 
    ?> 
</head> 
<body> 
<?php 
$xml = simplexml_load_file("http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17"); 

$nodes = new SimpleXMLElement($xml, null, true) 
    or die("cannot create"); 

foreach ($nodes->children() as $child) 
{ 
$Ques_id= $child->id; 
$Question= $child->text; 
$Option_1= $child->opt; 
$Option_2= $child->opt; 
$Option_3= $child->opt; 
$Option_4= $child->opt; 
$Answer= $child->opt->ans; 
$date= $child->date; 
)); 
$sql = "INSERT INTO feeds (Ques_id, Question, Option_1, Option_2, Option_3, Option_4, Answer, date) VALUES('". $Ques_id."','". $Question."','". $Option_1."','". $Option_2."','". $Option_3."','". $Option_4."','". $Answer."','". $date."')"; 
mysql_query($sql); 
} 
    ?> 
</body> 
</html> 

マイデータベースフィールド:

1 Ques_id = ID

2質問=テキスト

3 Option_1 = OPT(第OBJ OPTS値)

4 Option_2 = opt(opts値の2番目のobj)

5 Option_3 = OPT(OPTS値で第OBJ)(第OPTS値でOBJ)

6 Option_4 = OPT

7回答=

8日付(タイムスタンプ(OPT ANS = 1です) )=日付

答えて

0

mysqli構文が良好です。しかし、クエリ実行時に、古いmysql_ *の構文が間違っています。

このリンクを参照してください: - MySQL vs MySQLi when using PHP

提案: -

1)また、接続エラーなどクエリエラーをチェックする必要があります。

2)質問の外側が二重引用符( "")の場合、連結は必要ありません。あなたのPHP変数の周りに一重引用符を追加することができます。

3)プライマリキーをDBテーブルに追加することをお勧めします。

4)ヘッダータグの代わりに本体タグに接続オブジェクトを書き込みます。開発効率向上モードで

<!doctype HTML> 
<html> 
<head>  
</head> 
<body> 
<?php  
    header('Content-Type: application/xml; charset=utf-8'); 
    $mysqli = new mysqli ('localhost', 'mab***', '99931***', 'gcm**'); 

    /* check connection */ 
    if (mysqli_connect_errno()) { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 

$xml = simplexml_load_file("http://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17"); 

$nodes = new SimpleXMLElement($xml, null, true) or die("cannot create"); 

foreach ($nodes->children() as $child) 
{ 
    $Ques_id= $child->id; 
    $Question= $child->text; 
    $Option_1= $child->opt; 
    $Option_2= $child->opt; 
    $Option_3= $child->opt; 
    $Option_4= $child->opt; 
    $Answer= $child->opt->ans; 
    $date= $child->date; 
//)); Typo error. No need for this line 
$sql = "INSERT INTO feeds (Ques_id, Question, Option_1, Option_2, Option_3, Option_4, Answer, date) VALUES('$Ques_id','$Question','$Option_1','$Option_2','$Option_3','$Option_4','$Answer','$date')"; 
$res = $mysqli->query($sql); 

    if (!$res) { 
     printf("Errormessage: %s\n", $mysqli->error); 
    } 
} 

$mysqli->close(); // close connection 
    ?> 
</body> 
</html> 

を報告

5)常に ONあなたのエラーは、それは私がオプトインノードでの複数のためのループで選ぶたいあなたが:-)

+0

何そのない私の答えを助けていないことを願っていますhttp://ca.sharmatutorial.com/ws.asmx/GET_Question_ByDate?dtDate=2016-03-17このリンクを解析して挿入する必要があることをご覧ください –

関連する問題