Как декодировать строку из базы данных MySQL и кодировать ее - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь JSON-декодировать параметры строки и кодировать его с остальными данными.Но это только дает мне варианты, но.Если я не декодирую его, дайте мне это с обратной косой чертой в строке параметров.

[{"ID": "4", "AppID": "1", "Question": "test2", "Type": "Radio", "OrderNumber": "2", "Options": "{\" Number1 \ ": \" Yes \ ", \" Number2 \ ": \" No \ "}"}]

//open connection to mysql db

$connection = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdata) or die("Error " . mysqli_error($connection));

//fetch table rows from mysql db

$sql = "select * from App_Questions";
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));

//create an array
$emparray = array();
while ($row =mysqli_fetch_assoc($result)) {
    if ($row["Options"]){
        $str = json_decode($row["Options"]);
        $emparray = $str;
    }else{
        $emparray[] = $row;
    }
}
echo json_encode($emparray);

1 Ответ

0 голосов
/ 17 мая 2019

Предполагается, что вы хотите декодировать поле «Опции», в котором сохранены данные json, а затем вы хотите закодировать эти данные json с помощью остальных полей.Вывод в формате json получен из нашего вопроса:

array (
  0 => 
  array (
    'ID' => '4',
    'AppID' => '1',
    'Question' => 'test2',
    'Type' => 'Radios',
    'OrderNumber' => '2',
    'Options' => '{"Number1": "Yes", "Number2": "No"}',
  ),
)

Если вы декодируете «Опции», вы получите следующее:

array (
  'Number1' => 'Yes',
  'Number2' => 'No',
)

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

    $decodedData = json_decode($results);
    foreach ($decodedData as $row) {
        if (isset($row->Options)) {
            $decodedOptions = json_decode($row->Options);
            foreach ($decodedOptions as $key => $value) {
                $row->$key = $value;
            }
        }
    }
    $decodedData = json_encode($decodedData);
    print_r($decodedData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...