我的数据库有两个包含多个字段的记录(例如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>
答案 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个索引来获取最新数据