#php #mysql #loops #concatenation
#php #mysql #циклы #конкатенация
Вопрос:
—— ОБНОВЛЕННЫЙ SQL
SELECT listTitle, listLength, listCmt, listDt,GROUP_CONCAT(mBCFName, mBCLName, moAmt) AS mOfferInfo
FROM User U
INNER JOIN Listing L on (U.uID = L.uID)
INNER JOIN MerchantOffer MO ON (L.listID = MO.listID)
INNER JOIN Merchant M on (M.mID = MO.mId)
GROUP BY listTitle
ORDER BY listDt DESC
LIMIT 0,5
Php
<?php
$result = $sth1->fetchAll(PDO::FETCH_ASSOC);
require_once('inc/php/timeAgo.php');
echo $then;
foreach($result as $row)
{
echo "<div class='listing'>";
print '<br>Title: ' . $row['listTitle'] . '<br>Comment: ' . $row['listCmt'] .
'<br><br>' . $days . ' days ' . $hours . ' hours ago' . '<br><br>' . '<br>Offer By: ' . $row['mBCFName']. ' ' . $row['mBCLName'] . '<br> for: ' . $row['moAmt'];
echo "</div>";
}
unset($sth1);
?>
Выдает вывод, подобный:
http://i.stack.imgur.com/sgdhC.png (АДМИНИСТРАТОР, ПОЖАЛУЙСТА, ПОКАЖИТЕ)
Теперь он выводится нормально, но мне нужно его немного отформатировать. Как мне добавить пробел между mBCFName и mBCLName и пробелом после этого. (см. Изображение выше)
Ответ №1:
Попробуйте удалить:
GROUP BY listTitle
Я думаю, что это вернет все строки, которые вы хотите видеть, но PHP-код не выдаст ожидаемый результат.
Комментарии:
1. Тогда помогите с кодом php? Простое удаление
GROUP BY listTitle
не приводит к правильному выводу, оно перебирает все перечисленные поля.2. Но получили ли вы нужные предложения по списку?
3. Однако, не удаляя этот код, я обновил приведенный выше код, и мне просто нужно исправить форматирование. Вы можете помочь? (См. Обновленное выше, пожалуйста)
Ответ №2:
Вы выгрузили массив $result, чтобы посмотреть, что на самом деле возвращается? Я всегда тестирую их с:
echo '<pre>'.print_r($result,true).'<pre>';
Я бы добавил это в качестве комментария от I can’t yet. Извините, что разместил это как «ответ». Это должно показать вам что-то вроде:
array
(
['key1'] => 'value1'
['key2'] => 'value2'
['key3'] => 'value3'
['key4'] => 'value4'
)