Php 从一个表查询后,从另一个表获取更多信息并连接结果

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

我有两张桌子“乐队”和“adres”。在表“BANDS”中有一个BOEKERID,其ID与“adres”中相应的ID相同

当然,乐队总是不同的,波克也可以是相同的。也因为地址的改变,我有两个不同的表格

现在,我尝试了以下方法来获取信息:

$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>';