Отобразите результаты, чтобы показать все значения для каждого - PullRequest
2 голосов
/ 22 марта 2011

У меня есть рабочий MySql select с внутренним объединением:

      $estateSettings = getEstateOptionsArray();
        foreach($estateSettings as $s) {
            $i  = url_title($s, "", true);
            $data = $wpdb->get_col("
                SELECT meta.meta_value 
                FROM $wpdb->postmeta meta
                INNER JOIN wp_posts ON meta.post_id = wp_posts.id
                WHERE meta.meta_key = '{$i}' AND wp_posts.post_type = 'estate'
            ");
            $returnData = $s." : ";
            foreach($data as $v) { 
                $returnData .= $v.", ";


        }



        }

Все в порядке, $ v содержит значения, но проблема в том, что если я просто echo выдумаю это, то будет показано только последнее значение результата. Если я echo это так:

echo $returnData .= $v.", ";

показывает имена и все значения результатов.

Как мне echo результаты без returnData и показать все значения?

Я снова застрял. Мне удалось получить только значения, но они повторяются

 $ingatlanSettings = getIngatlanOptionsArray();
            foreach($ingatlanSettings as $s) {
                $i  = url_title($s, "", true);
                $data = $wpdb->get_col("
                    SELECT meta.meta_value 
                    FROM $wpdb->postmeta meta
                    INNER JOIN wp_posts ON meta.post_id = wp_posts.id
                    WHERE meta.meta_key = '{$i}' AND wp_posts.post_type = 'ingatlan'
                ");
                $returnData = $s." : ";
                foreach($data as $v) { 
                    $returnData .= $v.", ";
                    $result[] = $v; 

            }

            $res = $element.implode($result);
            echo $res;

            } 

Ответы [ 5 ]

1 голос
/ 22 марта 2011
    echo $returnData.implode(',', $data);

используйте это вместо цикла.

1 голос
/ 22 марта 2011
$returnData .= $s." : ";
foreach($data as $key=>$value) { 
                    $returnData .= $value.", ";
}
0 голосов
/ 22 марта 2011

спасибо всем за помощь, я смог сделать

$returnData = $s." : ";
                $resdata = array_unique($data);
                foreach($resdata as $v) { 
                    $returnData .= $v.", ";
                    echo $result[] = $v;

очень большое спасибо всем

0 голосов
/ 22 марта 2011

все нормально, $ v содержит значения, но проблема в том, если просто повторить это показывает только последнее значение результата, если я повторяю это как это эхо $ returnData. = $ v. ","; Это показывает имена и все значения результатов.

Вот где ты меня теряешь. Когда вы выводите результат, вы делаете это:

echo $returnData .= $v.", ";

Или вы повторяете:

echo $returnData;

Выполнение последнего вернет полную строку, которую вы подготовили со всеми значениями.

Хотя я пытаюсь понять природу вашего вопроса. Вы пытаетесь отформатировать $returnData определенным образом, но затем вернуть необработанные данные?

0 голосов
/ 22 марта 2011

Отличный способ увидеть, что содержит массив, - это простой скрипт:

<code><?php
    echo "<pre>"; print_r($YourArray); echo "
"; ?>

Знание того, что на самом деле находится в вашем массиве, может помочь решить множество проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...