私はphpとmysqlに非常に慣れていません。私は行くにつれて学ぼうとしていますが、この問題で立ち往生しています。
私は多対多の関係を持っています。テーブルは、users と state です。users テーブルの多くの会社は多くの州で運営されており、各州にはさまざまな会社があります。ユーザー テーブルの各会社には、状態テーブルに格納されている一意の ID があります。州テーブルには、会社が運営されている州名の列があります。会社が属している州ごとに、州テーブルに新しい行が作成されます。これで問題ないようです。
次の PHP コードを作成して、特定の州 ($state) の州テーブルからすべての会社 ID を取得し、特定の州で動作するすべての会社名 (会社 ID を使用してユーザー テーブルから取得) を表示します。
私の問題は、特定の州で事業を行っている企業のリストをアルファベット順に並べたいということです。このコードはそれを行いません。リストを順序付けできるようにする(または、一般的にはより効率的で優れた)これを行うためのより良い方法を誰かが提供できますか?
$state=$_GET['state'];
echo $state;
$aid=array();
$result=mysql_query("SELECT * FROM state WHERE state='$state'");
while($row=mysql_fetch_assoc($result)){
$v=$row['company_id'];
array_push($aid,$v);};
foreach($aid as $val){
$result1=mysql_query("SELECT * FROM users WHERE company_id='$val'");
$row1=mysql_fetch_assoc($result1);
$company=$row1['company'];
echo $company.'<br/>';};
テーブル構造は次のとおりです。
ユーザー
company_id
company
(other columns that are not relevant)
州
index
company_id
state
(no additional columns)