foreach循环 - 只返回一条记录

时间:2015-04-27 04:07:02

标签: php loops variables foreach record

我的数据库有两个包含多个字段的记录(例如partnerName,image_url等)。粘贴在下面的foreach循环完美运行,返回两个值' partnerName'从两个记录 我现在只想从当前记录中返回值。

我替换了以下行:     <?php foreach($this->challengenames as $k=>$challengename) { ?>

与     <?php $challengename = $this->challengenames[0]; ?> 并摆脱了结束的PHP括号。 这摆脱了循环,但我失去了索引k所以我没有得到任何值。有关如何修改此循环以保留索引k但仅返回当前记录的值的任何建议吗?

非常感谢!

<div id="defaultcontainerwrapper" class="maxwidth">
<?php foreach($this->challengenames as $k=>$challengename) { ?>
    <header>
        <h1>
            <div class="list">
                <span>Welcome to </span><?php echo $challengename['partnerName']; ?><span>'s Beat Waste Challenge!</span>
            </div>
        </h1>
    </header>
<?php } ?>
</div>

4 个答案:

答案 0 :(得分:1)

使用以下代码 -

<div id="defaultcontainerwrapper" class="maxwidth">
    <header>
        <h1>
            <div class="list">
                <span>Welcome to </span><?php echo $this->challengenames[0]['partnerName']; ?><span>'s Beat Waste Challenge!</span>
            </div>
        </h1>
    </header>
</div>

答案 1 :(得分:0)

$ k是$ challengname从0开始的关键

foreach($this->challengenames as $key => $value) {
    $key[0] = $value['partnername'];
    $key[1]=$value['image_url'];
}

答案 2 :(得分:0)

目前的记录是什么意思?因为我假设$this->challengenames引用PDO中可能fetchAll()的输出,返回数据库行数组(作为关联数组)。因此,通过使用$this->challengenames[0],您将获得返回的第一行(基于SQL查询中设置的顺序)。

你的解决方案中的索引$ k指的是0.无论如何你甚至不在你的循环中使用$ k o.o

如果您只想返回一行,请使用fetch()或mysql_get_row()(不推荐)或等效。您的SQL查询应该有LIMIT 1

答案 3 :(得分:0)

如果您想从DB获取最新数据,那么我建议您按降序获取数据并仅检索单行,如下所述

select * from <your table> orderby DESC

现在您不必运行循环只需使用第0个索引来获取最新数据