foreach loop – возвращает только одну запись

Мой db имеет две записи с несколькими полями (например, partnerName, image_url и т. Д.). Цикл foreach, вставленный ниже, отлично работает, возвращая два значения «partnerName» из двух записей.
Теперь я хочу только вернуть значение из текущей записи.

Я заменил следующую строку: <?php foreach($this->challengenames as $k=>$challengename) { ?>

с <?php $challengename = $this->challengenames[0]; ?> <?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> 

Используйте следующий код –

 <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> 

Что вы подразумеваете под текущей записью? Потому что я предполагаю, что $this->challengenames ссылается на выход из возможно fetchAll() в PDO, возвращая массив строк базы данных (как ассоциативные массивы). Таким образом, используя $this->challengenames[0] вы получаете возвращаемую первую строку (на основе набора заказов в SQL-запросе).

Индекс $ k в вашем решении относится к 0. В любом случае вы даже не используете $ k в своей петле oo

Если вы хотите вернуть только одну строку, используйте fetch () или mysql_get_row () (не рекомендуется) или эквивалент. И ваш SQL-запрос должен иметь LIMIT 1

$ k является ключом $ challengename, начинающимся с 0

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

Если вы хотите получить последние данные из своей базы данных, я рекомендую вам получить данные в порядке убывания и получить только одну строку, как указано ниже

select * from <your table> orderby DESC

теперь вам не нужно запускать цикл, просто используйте 0-й индекс, чтобы получить последние данные