Filtra resultados de uma seqüência serializada para usar em statistics

Eu preciso obter os valores de uma string serializada, para usá-lo em algumas statistics. Eu já tenho essa informação em outras páginas para mostrar algum conteúdo, mas não tenho ideia por que estou tendo esse problema agora.

O database possui uma tabela chamada wj_db7_forms (estou usando um plugin do WordPress para registrar as inputs em um formulário).

E a coluna com as informações que eu preciso está no form_value .

Limpando o conteúdo da coluna, há uma parte com s:4:"city";s:6:"boston" .

Eu quero obter todos os formulários, e em cada um, obter o valor para a city . Esse valor pode ter qualquer comprimento, porque é uma input aberta.

Eu tentei muitas maneiras, mas nenhum funcionou.

Recebo erros como

Erro de análise: erro de syntax, ‘cidade’ inesperada (T_STRING)

ou não obtém erros, mas a variável parece vazia, etc.

Eu tentei unserialize , array_pop , print_r , echo , tudo …

 prefix.'db7_forms'; $results = $wpdb->get_results( "SELECT form_value FROM $table_name WHERE form_post_id = 6062", OBJECT ); $form_data = unserialize( $results[0]->form_value ); print_r($form_data); ?> 

Com esse código, eu recebo todas as informações do formulário, mas recebo tudo, incluindo informações de outras colunas … E somente de um formulário. Eu preciso obter de todas as formas com que ‘form_post_id’ que estão dentro da tabela ‘wj_db7_forms’.

O conteúdo dentro do ‘form_value’ de um dos formulários está aqui: https://pastebin.com/e6LzJzLS

$ form_data [‘city’] funciona agora. Mas eu preciso obter os valores para todos os formulários. Apenas retorna um para mim.

Solutions Collecting From Web of "Filtra resultados de uma seqüência serializada para usar em statistics"

Então, basicamente, o formulário economiza uma grande matriz serializada no database. Agora, já que você possui vários formulários, você precisa fazer uma iteração sobre o resultado de get_results , unserialize a coluna e acessar a chave da city .

 global $wpdb; $table_name = $wpdb->prefix.'db7_forms'; $results = $wpdb->get_results( "SELECT form_value FROM $table_name WHERE form_post_id = 6062", OBJECT ); // iterate over results foreach ($results as $result) { $data = unserialize($result->form_value); // now the city is in $data['city'] }