для каждого цикла после QueryFetchArrayAll

У меня есть вопрос: я использовал следующие запросы для получения моих массивов из базы данных:

$news = $db->QueryFetchArrayAll("SELECT login,id FROM `users` ORDER BY id DESC LIMIT 9");

$imgs = $db->QueryFetchArrayAll("SELECT usrpic,id FROM `users` ORDER BY id DESC LIMIT 9");

Теперь мне нужно $news['login'] а также $imgs['usrpic'] по одному на каждую петлю.

Например:

foreach($news as $new, $imgs as $img){
<img style="border: 1px solid #8C0E0E;"src="'.$img['usrpic'].'" width="20" height="20" border="0" />
<img style="border: 1px solid #8C0E0E;"src="'.$new['login'].'" width="20" height="20" border="0" />
}

Может кто-нибудь помочь мне, как я могу это сделать?

2

Решение

Ты можешь использовать next() функция: http://php.net/manual/en/function.next.php
но не забудьте убедиться, что новости и img имеют одинаковый размер:

if(count($news) == count($imgs)) {
foreach($news as $new) {
$img = next($imgs);
<img style="border: 1px solid #8C0E0E;"src="'.$img['usrpic'].'" width="20" height="20" border="0" />
<img style="border: 1px solid #8C0E0E;"src="'.$new['login'].'" width="20" height="20" border="0" />
}
}
0

Другие решения

Если это ваши реальные запросы, вы должны объединить их в один:

$users = $db->QueryFetchArrayAll("SELECT id, login, usrpic FROM `users` ORDER BY id DESC LIMIT 9");

Затем выполните итерацию массива результатов и выведите изображения:

foreach ($users as $user) {
echo "<img src='{$user['usrpic']}' ... />";
echo "<img src='{$user['login']}' ... />";
}

В противном случае (сохраняя исходные запросы), вы должны убедиться, $news а также $imgs имеют одинаковую длину, а затем итерации одного из них:

$size = count($imgs);
for ($i = 0; $i < $size; $i++) {
$img = $imgs[$i];
$new = $news[$i];
echo "<img src='{$img['usrpic']}' ... />";
echo "<img src='{$new['login']}' ... />";
}
0

По вопросам рекламы [email protected]