Я пытаюсь сделать древовидное представление с данными из MS SQL. Я получаю данные с функциями ODB C. И я конвертирую эти данные в массив с несколькими уровнями. И я закодировал массив в json, но как только я пытаюсь увидеть вывод json, он отправляет 'null'.
Я хотел создать древовидное представление с классом PHP или JS / JQuery плагин. Мне нужен плагин, который я могу легко использовать в будущем. Если вы знаете, как это сделать с помощью PHP Class или плагина JS, этот код сошника здесь поможет мне
$ds= "Driver={SQL Server};Server=theserver";
$con = odbc_connect($ds, "user","password", SQL_CUR_USE_ODBC) or die("Erreur ODBC dans $sql : <br>Erreur : ".odbc_errormsg()." from database ".$database_name);
$res = odbc_exec($con, $sql) or die(204);
$tmp;
$rows = array();
//$res = executeSQL_ODBC($sql2);
$parentID = "";
$parent1ChildID = "";
//$data = array();
$data2[0] = array('TRACE_ID','TRACE_DESCRIPTION','START_TS','PARENT_TRACE_ID');
$i = 1;
while ($row = odbc_fetch_array($res)){
// $rows[] = $row;
$data2[$i] = array(
$row['TRACE_ID'],
$row['TRACE_DESCRIPTION'],
$row['START_TS'],
$row['PARENT_TRACE_ID']
);
$i++;
$sub_data["id"] = $row['TRACE_ID'];
$sub_data["name"] = $row['TRACE_DESCRIPTION'];
$sub_data["start_ts"] = $row['START_TS'];
$sub_data["parent_id"] = $row['PARENT_TRACE_ID'];
$data[] = $sub_data;
}
// On recupere dans un tableau temporaire d'affichage l'identifiant de tous les elements
foreach($data2 as $key => &$value){
$ouput[$value["id"]] = &$value;
if ($value['parent_id'] == 0){
//echo ('<li><input type="checkbox" id="item-2" /><label for="item-2">'); echo $value["name"]; echo "</label>";
}
}
//echo ('<ul>');
foreach($data as $key => &$value){
//echo "OK1";
//if($value['parent_id'] && isset($output[$value["parent_id"]])){
//echo "OK2";
$ouput[$value["parent_id"]]["nodes"][] = &$value; // Verifie les liens de parenter et associe le/les fils au pere
//echo' <li><input type="checkbox" id="item-2-2-0" /><label for="item-2-2-0">'; echo $value['START_TS'].' '.$value['name']; echo '</label></li>';
//}
//echo ('</ul></li>');
}
//echo ('</ul>');
foreach($data as $key => &$value) {
//echo "OK3";
if($value['parent_id'] && isset($output[$value["parent_id"]])){ // Test pour verifier si l'id = id du parent - TEST KO
unset($data[$key]); // Nettoye le tableau
//echo "OK4";
}
}
odbc_close($con);
$json = array_values($data2);
echo json_encode($json);
$show_json = json_encode($json , JSON_FORCE_OBJECT);
if ( json_last_error_msg()=="Malformed UTF-8 characters, possibly incorrectly encoded" ) {
$show_json = json_encode($API_array, JSON_PARTIAL_OUTPUT_ON_ERROR );
}
if ( $show_json !== false ) {
echo($show_json);
//echo safe_json_encode($show_json);
} else {
die("json_encode fail: " . json_last_error_msg());
}
Заранее спасибо за вашу помощь.