如何在表中显示mysql多行/ mysql_fetch_array结果?

时间:2015-06-18 11:21:21

标签: php mysql arrays while-loop html-table

我想在表格中显示mysql_fetch_array()个结果。

我想展示guests nametheir country及其agreed time同一日期旅行的人。{/ p>

以下代码工作正常。代码获取行值并打印它。

 $select_guests = mysql_query('SELECT name FROM van_sharing WHERE date = "'.$serch_text.'"') or die(mysql_error()); // query for getting guests for the same date
while($row = mysql_fetch_array($select_guests, MYSQL_ASSOC)) { //visitor / guest loop starts here
    echo $row['name'].'<br/>';
}
$select_country = mysql_query('SELECT country FROM van_sharing WHERE date = "'.$serch_text.'"') or die(mysql_error()); // query for getting guests for the same date
while($row = mysql_fetch_array($select_country, MYSQL_ASSOC)) { //country of visitor / guest loop starts here
    echo $row['country'].'<br/>';
}
$select_agreed_time = mysql_query('SELECT agreed_time FROM van_sharing WHERE date = "'.$serch_text.'"') or die(mysql_error()); // query for getting guests for the same date
while($row = mysql_fetch_array($select_agreed_time, MYSQL_ASSOC)) { //visitor / guest agreed time loop starts here
    echo $row['agreed_time'].'<br/>';
}

如果同一日期有5位客人,当我执行上述代码时,我将所有names一个放在另一位之下。同样我也在那里countriesagreed time

现在我想在HTML表格中显示这些结果。 我尝试了几行代码,但没有任何作用。

我的HTML表格如下:

<table class="table-fill">
    <thead>
        <tr>
            <th class="text-left">Name</th>
            <th class="text-left">From</th>
            <th class="text-left">Agreed Time</th>
        </tr>
    </thead>
    <tbody class="table-hover">
        <tr>
            <td class="text-left">Name 1</td>
            <td class="text-left">Country 1</td>
            <td class="text-left">Ag Time 1</td>
        </tr>
        <tr>
            <td class="text-left">Name 2</td>
            <td class="text-left">Country 2</td>
            <td class="text-left">Ag Time 2</td>
        </tr>
        <tr>
            <td class="text-left">Name 3</td>
            <td class="text-left">Country 3</td>
            <td class="text-left">Ag Time 3</td>
        </tr>
        <tr>
            <td class="text-left">Name 4</td>
            <td class="text-left">Country 4</td>
            <td class="text-left">Ag Time 4</td>
        </tr>
        <tr>
            <td class="text-left">Name 5</td>
            <td class="text-left">Country 5</td>
            <td class="text-left">Ag Time 5</td>
        </tr>
    </tbody>
</table>

如何根据我的td创建该表mysql_fetch_array()? 上表结构适用于5 guests

找到或生成的mysql_fetch_array()

3 个答案:

答案 0 :(得分:6)

首先,我认为您的解决方案不需要3个不同的查询..

    <table class="table-fill">
            <thead>
                <tr>
                    <th class="text-left">Name</th>
                    <th class="text-left">From</th>
                    <th class="text-left">Agreed Time</th>
                </tr>
            </thead>
        <?php 
        $result = mysql_query('SELECT name,country,agreed_time FROM van_sharing WHERE date = "'.$serch_text.'"') or die(mysql_error()); 
        while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
        { 
        ?>
          <tr>
               <td>
                   <?php    echo $row['name']; ?>
               </td>
               <td>
                   <?php     echo $row['country'];?>
               </td>
                <td>
                   <?php     echo $row['agreed_time']; ?>
               </td>    
    </tr>
    <?php
    }
?>
</table>

答案 1 :(得分:1)

首先,您应该使用mysqli

其次,不应该向数据库发送如此多的查询,以获取您可以在一个查询中获得的信息;

$select_guests = $mysqli->query('SELECT * FROM van_sharing WHERE date = "'.$serch_text.'"') or die(mysql_error());

接下来,您想要fetch the number of rows

$rows = $mysqli

您还应该查看PHP for function;

for ($i = 1; $i < $rows; $i++) {
    $thisRow = $select_guests->fetch_row()
    echo
'        <tr>
        <td class="text-left">'.$select_guests['name'].'</td>
        <td class="text-left">'.$select_guests['country'].'</td>
        <td class="text-left">'.$select_guests['time'].'</td>
    </tr>
    '; //This last line is to insert a line break and indent (for tidy HTML)
}

放手一搏,希望我能帮到你。 我还没有完全解决它,为了转换到mysqli,你需要做一些小改动,你可以在我发给你的mysqli链接中找到。好处是值得的。

答案 2 :(得分:0)

$select_all = mysql_query('SELECT * FROM van_sharing WHERE date = "'.$serch_text.'"') or die(mysql_error()); // query for getting all details for the same date
while($row = mysql_fetch_array($select_all , MYSQL_ASSOC)) {//loop starts here
    <tr>
           <td>
               <?php    echo $row['name']; ?>
           </td>
           <td>
               <?php     echo $row['country'];?>
           </td>
            <td>
               <?php     echo $row['agreed_time']; ?>
           </td>    
  </tr>

}