Php 从一个表查询后,从另一个表获取更多信息并连接结果
我有两张桌子“乐队”和“adres”。在表“BANDS”中有一个BOEKERID,其ID与“adres”中相应的ID相同 当然,乐队总是不同的,波克也可以是相同的。也因为地址的改变,我有两个不同的表格 现在,我尝试了以下方法来获取信息:Php 从一个表查询后,从另一个表获取更多信息并连接结果,php,mysql,sql,Php,Mysql,Sql,我有两张桌子“乐队”和“adres”。在表“BANDS”中有一个BOEKERID,其ID与“adres”中相应的ID相同 当然,乐队总是不同的,波克也可以是相同的。也因为地址的改变,我有两个不同的表格 现在,我尝试了以下方法来获取信息: $sql1 = "SELECT BANDID, NAAMBAND, CONTACTBAND, BOEKERID FROM `BANDS` ORDER BY $field $sort"; $sql2 = "SELECT ID, NAAM FROM `adre
$sql1 = "SELECT BANDID, NAAMBAND, CONTACTBAND, BOEKERID FROM `BANDS` ORDER BY $field $sort";
$sql2 = "SELECT ID, NAAM FROM `adres` WHERE ID = $BOEKERID";
$result1 = mysql_query($sql1) or die(mysql_error());
$result2 = mysql_query($sql2) or die(mysql_error());
while($row1 = mysql_fetch_array($result1))
while($row2 = mysql_fetch_array($result2))
echo'<tr>
<td>'.$row1['BANDID'].'</td>
<td>'.$row1['NAAMBAND'].'</td>
<td>'.$row1['CONTACTBAND'].'</td>
<td>'.$row1['BOEKERID'].'</td>
<td>'.$row2['NAAM'].'</td>';
$sql1=“通过$field$sort从'BANDS'订单中选择BANDID、NAAMBAND、CONTACTBAND、BOEKERID”;
$sql2=“从'adres'中选择ID,NAAM,其中ID=$BOEKERID”;
$result1=mysql\u query($sql1)或die(mysql\u error());
$result2=mysql\u query($sql2)或die(mysql\u error());
而($row1=mysql\u fetch\u数组($result1))
而($row2=mysql\u fetch\u数组($result2))
回声'
“.$row1['BANDID']”
“.$row1['NAAMBAND']”
“.$row1['CONTACTBAND']”
“.$row1['BOEKERID']”
“.$row2['NAAM']”;
有人能帮我吗?试试Sql join
SELECT
b.BANDID, b.NAAMBAND, b.CONTACTBAND, b.BOEKERID, a.id, a.naam
FROM BANDS b
LEFT JOIN adres a ON b.boekerid=a.id
ORDER BY $field $sort
另外,不要尝试使用mysql,因为它已被弃用,如果我使用您的sql,请尝试切换到MySQLi或PDO:
$sql1 = "SELECT BANDID, NAAMBAND, CONTACTBAND, BOEKERID FROM `BANDS` ORDER BY $field $sort";
$result1 = mysql_query($sql1) or die(mysql_error());
while($row1 = mysql_fetch_array($result1)){
echo'<tr>
<td>'.$row1['BANDID'].'</td>
<td>'.$row1['NAAMBAND'].'</td>
<td>'.$row1['CONTACTBAND'].'</td>
<td>'.$row1['BOEKERID'].'</td>';
$sql2 = "SELECT ID, NAAM FROM `adres` WHERE ID = $row1['BOEKERID']";
$result2 = mysql_query($sql2) or die(mysql_error());
while($row2 = mysql_fetch_array($result2)){//change this while if $sql2 all time return only 1 result
echo '<td>'.$row2['NAAM'].'</td>';
}
echo'</tr>';
}
$sql1=“通过$field$sort从'BANDS'订单中选择BANDID、NAAMBAND、CONTACTBAND、BOEKERID”;
$result1=mysql\u query($sql1)或die(mysql\u error());
而($row1=mysql\u fetch\u数组($result1)){
回声'
“.$row1['BANDID']”
“.$row1['NAAMBAND']”
“.$row1['CONTACTBAND']”
“.$row1['BOEKERID']”;
$sql2=“从'adres'中选择ID,NAAM,其中ID=$row1['BOEKERID']”;
$result2=mysql\u query($sql2)或die(mysql\u error());
while($row2=mysql\u fetch\u array($result2)){//如果$sql2始终只返回1个结果,则更改此选项
回显“.$row2['NAAM']”;
}
回声';
}
使用join():
$sql1=“从`BANDS`内部连接`adres`中选择NAAM、BANDID、NAAMBAND、CONTACTBAND、BOEKERID,其中`BANDS`.BOEKERID=`adres`.id按$field$sort排序”;
$result1=mysql\u query($sql1)或die(mysql\u error());
而($row1=mysql\u fetch\u数组($result1)){
回声'
“.$row1['BANDID']”
“.$row1['NAAMBAND']”
“.$row1['CONTACTBAND']”
“.$row1['BOEKERID']”
“.$row1['NAAM']”
';
}
我想你需要这样做:
$sql1 = "SELECT a.BANDID, a.NAAMBAND, a.CONTACTBAND, a.BOEKERID, b.NAAM FROM BANDS a, adres b WHERE a.BANDID = b.ID AND ID = $BOEKERID ORDER BY $field $sort";
$result1 = mysql_query($sql1) or die(mysql_error());
while($row1 = mysql_fetch_array($result1))
echo'<tr>
<td>'.$row1['BANDID'].'</td>
<td>'.$row1['NAAMBAND'].'</td>
<td>'.$row1['CONTACTBAND'].'</td>
<td>'.$row1['BOEKERID'].'</td>
<td>'.$row1['NAAM'].'</td>';
$sql1=“选择a.BANDID、a.NAAMBAND、a.CONTACTBAND、a.BOEKERID、b.NAAM,从a、b区中选择a.BANDID=b.ID,其中a.BANDID=b.ID,ID=$BOEKERID按$field$sort排序”;
$result1=mysql\u query($sql1)或die(mysql\u error());
而($row1=mysql\u fetch\u数组($result1))
回声'
“.$row1['BANDID']”
“.$row1['NAAMBAND']”
“.$row1['CONTACTBAND']”
“.$row1['BOEKERID']”
“.$row1['NAAM']”;
如果我错了,请纠正我这是PHP吗?如果是,请相应地标记您的问题。+1表示给出两个备选方案。请注意:第二个更优化,因为只有在您忘记打开sql1变量时,它才会调用服务器:)
$sql1 = "SELECT a.BANDID, a.NAAMBAND, a.CONTACTBAND, a.BOEKERID, b.NAAM FROM BANDS a, adres b WHERE a.BANDID = b.ID AND ID = $BOEKERID ORDER BY $field $sort";
$result1 = mysql_query($sql1) or die(mysql_error());
while($row1 = mysql_fetch_array($result1))
echo'<tr>
<td>'.$row1['BANDID'].'</td>
<td>'.$row1['NAAMBAND'].'</td>
<td>'.$row1['CONTACTBAND'].'</td>
<td>'.$row1['BOEKERID'].'</td>
<td>'.$row1['NAAM'].'</td>';