-1

我有一个代码,可以在页面上显示来自 MySQL 表的特定用户的信息。但是,信息都显示在一条简单的线上,背靠背。我想要的是在不同的块中显示每一行的信息。所以我的问题是:我怎样才能“制止”这条线,以创建许多不同的信息块,我可以把它们放在我的页面上吗?

<?php
while ($row = mysql_fetch_array($query)) {
echo $row['Column A'] . " " . $row['Column B'] . " " . $row['Column C'] . " ";
} ?>
4

5 回答 5

1

First of all you should change your mysql_* functions to another functions like PDO & mysqli

About your question is how to generate HTML from your DB data there are multiple of ways

One could be like this

<?php
while ($row = mysql_fetch_array($query)) {
?>
<h1><?php echo $row['columnA']; ?></h1>
<div class="myclass"><?php echo $row['columnb']; ?></div>
<img src="<?php echo $row['columnC']; ?>">
<?php
} ?>

Two could be

 <?php
    while ($row = mysql_fetch_array($query)) {
    $str = ""; 
    $str .= "<h1>".$row['columnA']."</h1>"; 
    $str .= '<div class="myclass">'.$row['columnb'].'</div>'; 
    $str .= '<img src="'.$row['columnC'].'">'; 
    echo $str; 
    <?php
    } ?>

Or you can use a FW wich make it simpler for you

Or you can use a templating library which is the best way for you if you are not going to use a Framework

check out mustache https://github.com/bobthecow/mustache.php

Of course you can change the HTML structure

I hope this can help :)

于 2013-07-28T01:29:33.667 回答
1

我认为一张表可能是您正在寻找的......(不要忘记更改为 mysqli* 正如@Sedz 在他的回答中提到的那样)

<table border="1">
    <?php
        while ($row = mysqli_fetch_array($query)) {
            echo '<tr>';
                echo '<td>' . $row['Column A'] . '</td>';
                echo '<td>' . $row['Column B'] . '</td>';
            echo '</tr>';
            echo '<tr>';
                echo '<td></td>';
                echo '<td>' . $row['Column C'] . '</td>';
            echo '</tr>';
        };
    ?>
 </table>

按照您认为合适的方式将结果排列在行/单元格中......

于 2013-07-28T01:26:46.147 回答
0

打破界限的方式可能会有所不同,具体取决于您的目标是什么以及您将在哪里使用它们。以下是在不同行上获取信息的一些方法:

  1. br在每个字段的末尾使用标签。
  2. 使用 DIV 包含每一行。
  3. 为每一行使用一个表格。

如果您正在查看不同的浏览器和有效的大小,DIV 将是最好的。但是对于某些事情,表格也很容易实现。

以下是我如何使用表格打破行。

<table>
    <?php while ($row = mysql_fetch_array($query)): ?>
    <tr>
        <td>Column A label</td>
        <td><?php echo $row['ColumnA']; ?></td>
    </tr>
    <tr>
        <td>Column B label</td>
        <td><?php echo $row['ColumnB']; ?></td>
    </tr>
    <tr>
        <td>Column C label</td>
        <td><?php echo $row['ColumnC']; ?></td>
    </tr>
    <?php endwhile; ?>
</table>

我对您的数据库表结构一无所知,但是按照您所展示的内容,我已经包含了一个示例。这没有经过测试,但它应该是好的。

另请注意 while 循环的替代 PHP 语法。

于 2013-07-28T01:37:00.577 回答
0

Perhaps the best way is you pass the results into an array

$data = array(); 

while ($row = mysql_fetch_assoc($results)) {
    $data[] = $row;
}

And the break you are talking about

foreach ($data as $value) {
    echo "$value<br>";
}
于 2013-07-28T01:29:50.777 回答
0

It is simple user2619310!

Add "\n" in your line.

Example:

<?php
while ($row = mysql_fetch_array($query)) {
      echo $row['Column A'] . " " . $row['Column B'] . " " . $row['Column C'] . "\n";

} 
?>

Bye! :-D

于 2013-07-28T01:31:21.783 回答