一个html表中的双查询[PHP / mysql]

时间:2017-09-30 08:29:10

标签: php mysql sql

伙计我有这样的东西把结果放在html表中。代码如下:

<?php

$db_host = 'localhost'; // Server Name
$db_user = 'username'; // Username
$db_pass = 'password'; // Password
$db_name = 'database'; // Database Name

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
    die ('Failed to connect to MySQL: ' . mysqli_connect_error());  
}

$sql = "select * FROM Table WHERE test ='10'";  
$query = mysqli_query($conn, $sql);

if (!$query) {
    die ('SQL Error: ' . mysqli_error($conn));
}


?>
        <table id="MyTable" class="display" cellspacing="0" width="100%">  
        <br><br>
        <thead>
            <tr>
                <th>NO</th>
                <th><?=$this->lang->line('NO');?> [h]</th>
                <th><?=$this->lang->line('RESULTS1');?></th>
                <th><?=$this->lang->line('RESULTS2');?></th>
                <th><?=$this->lang->line('RESULTS3');?></th>
            </tr>
        </thead>
        <tbody>
        <?php
        $no     = 0;
        $total  = 0;
        while ($row = mysqli_fetch_array($query))
        {
            $amount  = $row['time_spent'] == 0 ? '' : number_format($row['amount']);
            echo '<tr>
                    <td>'.$no.'</td>
                    <td>'.$row['result1'].'</td>
                    <td>'.$row['result2'].'</td>
                    <td>'.$row['result3'].'</td>
                    <td>'.$row['reg_date'].'</td>
                    <td>'.$row['result from another ($sql)'].'</td>
                </tr>';
            $total += $row['result1'];

            $no++;
        }?>
        </tbody>
        </tbody>
            <tr>
                <td colspan="3"><?=$this->lang->line('application_total');?></td>
                <th><? echo $total_time;?></th>
            </tr>
        </tbody>
    </table>

一切都很好但是有没有可能在这段代码中添加第二个sql查询,这样我就可以将结果放到同一个表中的<td>...</td>中,如上所示?

2 个答案:

答案 0 :(得分:0)

  

一切都很好,但有没有可能添加到此代码中   第二个SQL查询..

当然有可能。

你可以这样做&#34;选择* FROM another_Table WHERE the_id =&#39;&#34;。 $ row [&#34; relation_id&#34;]。&#34;&#39;&#34 ;;

但是如果关系是1-1,那么我建议您使用连接表而不是执行新查询。

即:

select a.*, b.another_field 
from table1 a
join table2 b on b.relation_id = a.relation_id

答案 1 :(得分:0)

  1. 将查询嵌入循环中是不明智的。因为每次都会执行嵌套查询。这是一种糟糕的代码风格。

  2. 您最好通过joinconstraint

  3. 获取一次结果