From mysql, I have a data BLOB data type which has two different scenarios (Please see below). I am trying to put them into a string. Below is the process that I am doing:
1. Query:
$names= $results[0]->name;
print_r($names);
First scenario:
[{"Name":"Mike"},{"Name":"Sean"}]
Second scenario:
{"Name":"Mike Smith","Spaces":"1"}
2. JSON_DECODE
$data = json_decode(stripslashes($names),true);
print_r($data);
First scenario:
Array
(
[0] => Array
(
[Name] => Mike
)
[1] => Array
(
[Name] => Smith
)
)
Second scenario:
Array
(
[Name] => Mike Smith
[Spaces] => 1
)
3. What I am trying to do: To put them into a string
$string = '';
for ($i=0; $i <sizeof($data) ; $i++){
$row = $data[$i];
$name = $row -> Name;
if(isset($row -> Spaces)){
$number = '(' . $row -> Spaces . ')';
}else{
$number = '';
};
$string .= $name . $number . ', ';
};
//Remove last comma
$refined = rtrim($string,', ');
print_r($refined);
4. ISSUE
The issue I am having is that because the data can have two different scenarios like shown in the "1.Query", I can't predict or generalize it and getting errors like "Trying to get property of non-object".
How can I fix this?
$row['Spaces']and$row['Name']isset('Spaces')to predict they are second scenario,truefrom thejson_decode()and leave the data as an objectisset($row['Spaces'])