【问题标题】:php load database side-by-sidephp并行加载数据库
【发布时间】:2016-04-05 22:43:59
【问题描述】:
<?php
        try {

            $stmt = $db->query('SELECT postID, postTitle, postDesc, postDate FROM blog_posts ORDER BY postID DESC');
            while($row = $stmt->fetch()){

                echo '<div>';
                    echo '<h1><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h1>';
                    echo '<p>Posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</p>';
                    echo '<p>'.$row['postDesc'].'</p>';             
                    echo '<p><a href="viewpost.php?id='.$row['postID'].'">Read More</a></p>';               
                echo '</div>';

            }

        } catch(PDOException $e) {
            echo $e->getMessage();
        }
    ?>

此代码按行加载数据。我需要并排加载数据。

【问题讨论】:

  • 并排??你的意思是逐列说??
  • 并排只让我想起冰箱这个词...

标签: php layout


【解决方案1】:

你的问题有点模糊,你没有说你的实际问题是什么。您当前的解决方案显式生成标记,以便将您可视化的详细信息放置在段落元素中。段落元素显然在彼此垂直下方可视化。

如果您的问题只是想让细节水平对齐,那么您可以尝试以下几种方法:

第一种方法:

您可以简单地修改样式表规则 (css) 以相应地显示段落元素:

p {
  display: inline-block;
}

但是这被认为是丑陋的,因为它破坏了段落的语义......

第二种方法:

您可以简单地将创建标记的方式更改为类似的内容:

echo '<div>';
echo '<h1><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h1>';
echo '<div class="cell">Posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</div>';
echo '<div class="cell">'.$row['postDesc'].'</div>';             
echo '<div class="cell"><a href="viewpost.php?id='.$row['postID'].'">Read More</a></div>';               
echo '</div>';

然后在你的样式表定义中添加这样一个 css 规则:

div.cell {
  display: inline-block;
}

这被认为是干净正确的方法。

第三种方法:

与第二种方法类似,您可以将详细信息放在表格单元格中,因此创建一个表格结构来保存数据。这是非常可靠的,但它被认为有点错过了使用表格进行布局......它还在“减少障碍”领域产生了问题,这在当今的网页设计和可用性方面越来越重要想法。此外,它不允许布局以响应方式适应不同的屏幕宽度,因此您会遇到智能手机和桌子等不同设备的布局问题。

所以我建议不要使用这种方法。


编辑: 好吧,似乎这一切都是徒劳的,因为正如最初所说的那样,这个问题很模糊。一个典型的例子,因为一个问题缺乏精确性而付出了很多努力......

因此,根据您在此处的评论,您希望 outer divs 并排对齐。

实际上我已经在上面给出了答案,但我当然可以在这里以与您在评论中所要求的内容相匹配的精确方式重复它:

只需通过添加类清楚地标记容器以接收特殊对齐:

echo '<div class="outer">';
echo '<h1><a href="viewpost.php?id='.$row['postID'].'">'.$row['postTitle'].'</a></h1>';
echo '<p>Posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).'</p>';
echo '<p>'.$row['postDesc'].'</p>';             
echo '<p><a href="viewpost.php?id='.$row['postID'].'">Read More</a></p>';               
echo '</div>';

然后为此添加样式规则:

div.outer {
  display: inline-block;
}

我创建了一个fiddle 来演示效果: https://jsfiddle.net/oLrugrLn/

【讨论】:

  • 我的意思是,并排加载每个 div,而不是 div 内的 para。
  • @kishon 了解为什么写出精确问题很重要?
  • @kishon 我在答案中添加了一个部分,该部分使用与第二种方法相同的想法将 outer div 并排对齐。
  • 很高兴我能帮上忙 :-) 有一天回馈一些东西!
  • 对不起,你错过了使用这个网站......我在上面写道:“我建议你开始阅读css规则的介绍......”我的意思是。您应该能够阅读文档并从中学习。在这里简单地要求别人为你做你的工作被认为是不礼貌的。如果你真的做了你被问到的事情,但仍然无法自己找到答案,那么请打开一个新问题。谢谢!
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
相关资源
最近更新 更多