【问题标题】:PHP+MySQL Printing a MySQL array into tablePHP+MySQL 将 MySQL 数组打印到表中
【发布时间】:2014-07-21 09:49:03
【问题描述】:

我有一个查询函数(下面的代码),我用它来读取数据库,我想知道如何循环打印以输出 -ALL- 结果到一个类似这样的表中:

我用这个得到它:

$visa=$DB->query("SELECT fname,lname,email FROM users");
    echo '<table BORDERCOLOR=black>';
   ?>
    <tr>
        <th>Name</th><th>LastName</th><th>E-Mail</th>
    </tr>
    <?php
    echo "<td>";
    echo $visa[0]['fname'];
    echo "</td>";
    echo "<td>";
    echo $visa[0]['lname'];
    echo "</td>";
    echo "<td>";
    echo $visa[0]['email'];
    echo "</td>";

查询功能:

function query($querytext) {
        $rs = mysql_query($querytext, $this->_link);
        if($this->_debug) {
            $this->addDebugMessage("\t<tr>\n\t\t<td class=\"debug_nr\">".$this->_queryCount++."</td>\n\t\t<td class=\"debug_queInfo\"><b>Query: (".@mysql_num_rows($rs).")</b></td>\n\t\t<td>" . htmlspecialchars($querytext) . "</td>\n\t</tr>\n");
            if(mysql_error() != '') {
                $this->addDebugMessage("\t<tr>\n\t\t<td class=\"debug_nr\">".$this->_queryCount++."</td>\n\t\t<td class=\"debug_queInfo\"><b>Error #".mysql_errno($this->_link)." :</b></td>\n\t\t<td>" . htmlspecialchars(mysql_error($this->_link)) . "</td>\n\t</tr>\n");
            }
        }
        if($rs) {
            $num_rows = @mysql_num_rows($rs);
            if($num_rows) {
                if($num_rows > 0) {
                    $rsarray = array();
                    while($line = mysql_fetch_array($rs , MYSQL_ASSOC)) {
                        array_push($rsarray, $line);
                    }
                    mysql_free_result($rs);
                    return $rsarray;
                } else {
                    return false;
                }
            } else {
                if(mysql_affected_rows($this->_link) > 0) {
                    return true;
                } else {
                    return false;
                }
            }
        } else {
            return false;
        }
    }

【问题讨论】:

    标签: php mysql arrays printing html-table


    【解决方案1】:

    使用 for 或 foreach 循环:

    <?php foreach($visa as $v) {
    echo "<td>";
    echo $v['fname'];
    echo "</td>";
    echo "<td>";
    echo $v['lname'];
    echo "</td>";
    echo "<td>";
    echo $v['email'];
    echo "</td>";
    }
    

    在您的代码中,$visa 是一个查询结果数组,要显示其中的所有值,您只需在该数组上循环即可

    【讨论】:

    • 谢谢你,完全做到了,不知道那些foreach循环在php中是如何工作的。您知道是否有某种方法可以在姓名/姓氏/电子邮件之间添加行吗? (我可以在 8 分钟内接受你的回答)
    • “添加行”是什么意思?您可以使用 CSS 或向表格标签添加边框,如下所示:&lt;table border="1"&gt;。我希望我没有误解你:)
    【解决方案2】:

    您也可以遍历字段名称,如下所示:

    <?php
    // replace with your own array from the DB query
    $visas = array(
            array(  'name' => 'John',
                'age' => '43'),
            array( 'name' => 'Sally',
                'age' => '36')
        );
    echo "Visas<br/><table border='1'>";
    foreach($visas as $visa) {
        echo "<tr>";
        foreach($visa as $key => $value) {
            echo "<td><em>$key:</em></td><td>$value</td>";
        }
        echo "</tr>";
    }
    echo "<table>";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2014-05-14
      • 2015-07-14
      • 1970-01-01
      • 2016-07-09
      • 2013-03-17
      • 1970-01-01
      相关资源
      最近更新 更多