2017-12-28 16 views
-1

カテゴリ&の2つのテーブルがあります。今私はPHPを使用して配列形式でこれらのテーブルからデータをフェッチする必要があります。これらのテーブルからデータを配列形式で取得します。しかし、私はこれらのデータベースをカテゴリ名に分類する必要があります。PHPで1つの配列にすべてのカテゴリを作る方法

ここでは、データを取得するために使用しているテーブルを示します。 Tables

ここは、dbからデータを取得するためのPHPコードです。

<?php 
$sql_query = "SELECT store_id, store_name, store_url, category_id, (SELECT categories_name FROM categories_list WHERE categories_id = stores_list.category_id) AS category_name FROM `stores_list` order by category_id asc"; 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$result=mysqli_query($conn, $sql_query); 
while($row=mysqli_fetch_array($result)){ 
$data["countries_list"][] = array("category_name" => $row['category_name'], 
     "stores_list"=>array("store_id" => $row['store_id'], "store_name" => $row['store_name'],"store_url" => $row['store_url'])); 
} 
echo json_encode($data); 
?> 

ここでは、上記のコードの出力を示します。 getting output

これが望ましい出力です。 desired output

+0

配列内の同じキーは、希望するフォーマットでは使用できません。「stores_list」は同じキーを繰り返し使用します。それは実際には不可能です。キーの最新の値は最初の値と毎回の単一キー を最新のデータで上書きします。ここをクリック:-https://eval.in/926549 –

+0

@ AlivetoDie - Anantsingh希望の出力形式を変更しました。 –

+0

以下の答えを確認してください。私はあなたの希望のフォーマット –

答えて

1

お試しいただけますか?

$sql_query = "SELECT store_id, store_name, store_url, category_id, (SELECT categories_name FROM categories_list WHERE categories_id = stores_list.category_id) AS category_name FROM `stores_list` order by category_id asc"; 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$result=mysqli_query($conn, $sql_query); 
while($row=mysqli_fetch_array($result)){ 
    $data["countries_list"][$row['category_name']] = array("category_name" => $row['category_name']); 
    $data["countries_list"][$row['category_name']]["stores_list"]["stores_info"][] = array("store_id" => $row['store_id'], "store_name" => $row['store_name'],"store_url" => $row['store_url']); 
} 
$data["countries_list"] = array_values($data["countries_list"]); 
echo json_encode($data); 
+0

に一致すると思うOPの希望のフォーマットは全くできないので、これはOPの希望のフォーマットを満たしません。どうして?そのために質問の下で私のコメントを確認してください –

+0

はい、それは私がstores_listの配列を作る理由です。その形式に近いです。 –

+0

@JasminMistry出力パターンの書式を変更しました。この問題を解決するために私を案内してください。 –

関連する問題