2011-11-15 8 views
0

リモートXMLファイルをフェッチし、製品データを含む表を表示するスクリプトがあります。データは、フォーマットは次の通りです:あなたはID 2でName2を見るようにMySQLデータベースなしで配列のみを使用して結果を表示する方法

ID, name, price, months. 

+++++++++++++++++++ 

1, Name1, $24, 12 

2, Name2, $11, 24 

2, Name2, $10, 36 

3, Name3, $16, 12 

2, Name2, $9, 48 

4, Name4, $26, 12 

+++++++++++++++++++ 

を同じ製品ですが、異なるヶ月の選択と異なる価格で。

私は

誰がためにいくつかのPHP関数を書いて私を助けることができる(その価格はそのメニューの値になります)一度だけ同じ製品名を表示し、月の選択とそのためのドロップダウンメニューを持っている必要がありますそれ?それは多分PHPの配列をmysqlデータベースを使用すべきではありません...

ありがとうございます!あなたの注意のための

++++++++++++++++++++++++++++++++++++

本当にありがとうございました、本当にこれを感謝!ヤンTuroňによって 機能をソリューションとして見えますが、私はそれを実装するためのトラブルを持っている...ここに私の実際のコードは次のとおりです。

<? 
try 
{ 
$client = new soapclient("https://api.thesslstore.com/WBService.svc?wsdl", array('trace' => 1,'soap_version' => SOAP_1_1)); 


$parameters = array('objAuth'=>array("ResellerUserName"=>"[email protected]","ResellerPassword"=>"password","PartnerCode"=>000000111)); 

// get the result, a native PHP type, such as an array or string 
$result = $client->GetAllProductPrice($parameters); 

$counter=count($result->GetAllProductPriceResult->AllProductPrice->AllProductPricing); 

for ($i=0; $i<$counter; $i+=1) { 

printf("<tr><td> %s \n", $result->GetAllProductPriceResult->AllProductPrice->AllProductPricing[$i]->NumberOfMonths ."</td>"); 
printf("<td> %s \n", $result->GetAllProductPriceResult->AllProductPrice->AllProductPricing[$i]->Price ."</td>"); 
printf("<td> %s \n", $result->GetAllProductPriceResult->AllProductPrice->AllProductPricing[$i]->ProductCode ."</td>"); 
printf("<td> %s \n", $result->GetAllProductPriceResult->AllProductPrice->AllProductPricing[$i]->ProductName ."</td>"); 

} 
catch (Exception $e) 
{       
printf("Error:sendSms: %s\n",$e->__toString()); 
} 

exit; 
?> 

そして、ここでは実際の例です:あなたの助けをhttp://webservice.ge/eus/TestPHPAPIProductDetails.php

ありがとう!

+2

IDの全体が一意であるということです。あなたはそれを複製したときにその点を少し殺しました。決して起こるべきではありません。 –

+0

XML文書の例を挙げることはできますか? (CSVだけでなく実際のDOMツリー) – Tomas

答えて

0
// prepare $data from your SOAP object 
$result = $client->GetAllProductPrice($parameters); 
$x = $result->GetAllProductPriceResult->AllProductPrice->AllProductPricing; 
$data = array(); 
for ($i=0; $i<count($x); $i++) { 
    $data[] = get_object_vars($x[$i]); 
} 

// transform to format that suits your purpose 
$result = []; 
foreach($data as $item) { 
    $key = $item["name"]; 
    if(!isset($result[$key])) $result[$key] = array(); 
    $result[$key][$item["price"]] = $item["months"]; 
} 

// create your HTML code 
ksort($result); 
foreach($result as $key=>$item) { 
    ksort($item); // optional if you want options sorted asc 
    echo "<select name=\"$key\">"; 
    foreach($item as $value=>$text) echo "<option value=\"$value\">$text</option>"; 
    echo "</select>"; 
} 
+0

私の編集したポストをご覧ください。ご協力ありがとうございました。 – user1048339

+0

ポイントが少し不明なので、私はそれをキャッチしたいと思います - 私の更新されたコードを参照してください。それはあなたが必要とする正確なものではないかもしれませんが、私はあなたがすでにそれをまとめることができると信じています。がんばろう。 –

+0

もう一度、残念ながら私はそれを働かせることができませんでした。 '致命的なエラー:配列として型stdClassのオブジェクトを使用できません'と表示されます。$ data [] = get_object_vars($ x [$ i]); また、 'Parse error:syntax error、予期しない' [''その行:$ result = []; とにかくあなたの時間と助けてくれてありがとう! – user1048339