MySQLクエリに基づいてユニークなデータセットをページに出力しようとしています。最終結果には、1つの薬局とそれに関連する価格が含まれている必要があります。ここでは、クエリによって、ループしながら、作成された配列のサンプルです:MySQLクエリの後にPHPを使用してユニークなデータを出力する
Array (
[0] => Array (
[Copay_Amount] => 18.37
[Pharmacy_Name] => CVS PHARMACY 04286
)
[1] => Array (
[Copay_Amount] => 27.54
[Pharmacy_Name] => HEB PHARMACY 662
)
[2] => Array (
[Copay_Amount] => 22.46
[Pharmacy_Name] => WALMART PHARMACY 10-4194 104194
)
[3] => Array (
[Copay_Amount] => 9.77
[Pharmacy_Name] => PUBLIX PHARMACY 0050
)
[4] => Array (
[Copay_Amount] => 18.37
[Pharmacy_Name] => CVS PHARMACY 06961
)
[5] => Array (
[Copay_Amount] => 12.52
[Pharmacy_Name] => KROGER PHARMACY 24660
)
[6] => Array (
[Copay_Amount] => 22.46
[Pharmacy_Name] => WALMART PHARMACY 10-1187 101187
)
これは私がどのwhileループで薬局店舗IDをきれい以下
<table class="table table-striped .table-responsive h3"> \t
<tbody>
<tr>
<td>CVS</td>
<td>$18.37</td>
</tr>
<tr>
<td>HEB</td>
<td>$27.54</td>
</tr>
<tr>
<td>WALMART</td>
<td>$22.46</td>
</tr>
<tr>
<td>PUBLIX</td>
<td>$9.77</td>
</tr>
<tr>
<td>CVS</td>
<td>$18.37</td>
</tr>
<tr>
<td>KROGER</td>
<td>$12.52</td>
</tr>
<tr>
<td>WALMART</td>
<td>$22.46</td>
</tr>
<tr>
<td>PUBLIX</td>
<td>$9.77</td>
</tr>
<tr>
<td>PLAQUEMINES</td>
<td>$12.35</td>
</tr>
<tr>
<td>BARTELL DRUGS</td>
<td>$12.17</td>
</tr>
<tr>
<td>BROOKSHIRES</td>
<td>$12.68</td>
</tr>
<tr>
<td>KROGER </td>
<td>$12.52</td>
</tr>
<tr>
<td>WALMART</td>
<td>$22.46</td>
</tbody>
</table>
を生成します次のようになります。
$cashprice = round($row['Copay_Amount'],2);
$pharmacy = trim($row['Pharmacy_Name']);
$pharmacy = substr($pharmacy, 0, strpos($pharmacy, "#"));
$pharmacy = str_replace('DISCOUNT',"",$pharmacy);
$pharmacy = str_replace('PHARMACY',"",$pharmacy);
$pharmacy = preg_replace('/[-#()0-9]+/', '', $pharmacy);
私はテーブルから重複を取り除こうとしています。このケースでは、CVS、Walmart、およびPublixからは1つの固有の薬局と価格が表示されています。 私は、GROUP BYを使用してMySQLレベルでこれを実行しようとしましたが、そのためには長い薬局名と短いものが一致する2番目のテーブルが必要です。クエリ時間は受け入れられません。
$items = array_unique($r->fetch_assoc(), SORT_NUMERIC);
をそれはすべてが、CVSの項目とし、それらを繰り返し4回(上記の配列が部分的にしか... MySQLのクエリセットLIMIT 0を削除します。一部はここに示したように、私もちょうどarray_uniqueを試してきました、100)。
私に同情してくれる人を見つけることを願って、これを手伝う私の独特のPHP方法!ありがとう!
クエリでSELECT DISTINCTを直接使用しようとしましたか?これは、トリックをして、多くの時間とコードを保存する必要があります – Lucarnosky
@ルカルノスキー、あなたはそれに私を打つ:)。追加するには、関連する価格が同じであるため、喜んで 'SELECT DISTINCT Pharmacy、Price FROM Table'のようにすることができます。次のURLをチェックしてください:https://www.w3schools.com/sql/sql_distinct.asp – nurchi
グループなしで左の結合を行っていますか? –