2015-04-27 237 views
0

我的db有兩個記錄有多個字段(例如partnerName,image_url等)。下面粘貼的foreach循環完美地工作,從兩條記錄中返回兩個值'partnerName'。
我現在只想返回當前記錄的值。foreach循環 - 只返回一條記錄

我更換了以下行: <?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

'0'是新的'$ k';) – Havelock

+2

你爲什麼轉發? http://stackoverflow.com/questions/29886181/foreach-loop-want-to-return-only-one-record-depending-on-page請閱讀http://stackoverflow.com/help/no-one-answers – Sean

+0

對不起肖恩。在這裏新建,只是瞭解該網站。 – ian

回答

0

ķ$是$ challengname關鍵0

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

開始什麼您當前記錄意思?因爲我認爲$this->challengenames引用PDO中可能爲fetchAll()的輸出,並返回一個數據庫行數組(作爲關聯數組)。因此,通過使用$this->challengenames[0],您將獲得返回的第一行(基於SQL查詢中設置的順序)。在解決方案

指數$ k表示0反正你甚至不使用$ķ你的循環OO內

如果你想只返回一行用取()或mysql_get_row()(未推薦)或同等學歷。和您的SQL查詢應該有LIMIT 1

0

如果你想獲得的最新數據,從您DB那麼我建議你按降序排列,並僅檢索以下

select * from <your table> orderby DESC

單列爲提獲取數據

現在你不必運行一個循環只需要使用0號索引,以獲取最新的數據

+0

Tx Karvin。這是一個小的數據集,我已經擁有了所有的變量,只是試圖讓循環得到整理。我想我使用'<?php $ challengename = $ this-> challengenames [$ k] = current($ this-> challengenames);現在它只返回第一個值,但我希望它從我用來訪問該頁面的記錄中返回值。不知道這是否有意義,但我使用值'challengeId'來訪問此頁面,現在我想使用該值'challengeId'來獲取該頁面上的其他值。我相信我會以錯誤的方式去解決這個問題,但我對此很陌生。再次發送! – ian

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>