Gera11
@Gera11

Как правильно разделить получаемое значение MySQL запроса на PHP?

Есть вот такой небольшой запрос, который получает список всех значений и рядом приписывает кол-во ответов.
$xflist = dle_cache( $xfname, $config['skin'] );
if(!$xflist) {
	$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1" );
	while ( $rows = $db->get_row( $sql_result ) ) {
		$xfields[] = $rows;
	}
	$stack = array();
	foreach($xfields as $value){
		if($value[xfields]){
			$row = xfieldsdataload($value[xfields]);
			if($row[$xfname]){
				$rowdata = explode( "~", $row[$xfname]);
				foreach($rowdata as $value){
					if($value){
						$value = trim($value);
						array_unshift($stack, $value);
					}
				}
			}
		}
	}
	sort ($stack);	
	$stack = array_count_values( $stack );
	foreach( $stack as $value => $count ){
		$xflist .= "<option value=" . $value . ">" . $value ." (" .$count . ")</option>";
	}
	create_cache( $xfname, $xflist, $config['skin'] );
}
echo $xflist;


Из сроки "_post" в базе он ищет ячейку xfields и все значения стэкует списком option.
НО! иногда один пост(новость) может иметь несколько значений одновременно, и тогда он выдает все через запятую вместо того чтобы писать отдельно списком:
Т.е одна запись, может иметь несколько значений и их нужно выводить отдельно а он выводит через запятую
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Есть вот такой небольшой запрос, который получает список всех значений и рядом приписывает кол-во ответов.
Нет, он этого не делает.

Из сроки "_post" в базе он ищет ячейку xfields и все значения стэкует списком option.
_post это не строка, а таблица, и не "ищет ячейку", а выбирает значения из колонки xfields, и ничего при этом не "стыкует".

и тогда он выдает все через запятую вместо того чтобы писать отдельно списком:
Запрос как раз выдает все списком, а вот дальнейшая обработка конечно редчайшая дичь...

Т.е одна запись, может иметь несколько значений и их нужно выводить отдельно а он выводит через запятую
Ну так поправьте код, там где обрабатывается массив и выводите как вам удобно.
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
'<option value="fields[' . $fieldName . '][' . $fieldValue . ']">' . $fieldValue .'</option>'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы