我对 php 和 mysql 很陌生。我正在努力学习,并被困在这个问题上。
我有一个多对多的关系。这些表是:用户和状态。用户表中的许多公司在许多州运营,每个州都有许多不同的公司。user 表上的每个公司都有一个唯一的 id,它存储在 state 表中。然后,状态表有一个列表示公司运营所在的州名称。在状态表中为公司所在的每个州创建一个新行。这一切似乎都正常。
我编写了以下 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)