This code can be used to read training data from MySQL rather than a text file.<?phpfunction get_training_data_from_db($id) { $table_name = "TrainingSets"; $field = "TrainingData"; $connection=mysqli_connect("host","username","password","database"); $result=mysqli_query($connection,"SELECT $field FROM $table_name"); $data=mysqli_fetch_assoc($result); mysqli_close($connection); return $data[$field];}function prepare_data_from_db($training_data) { $training_data = explode( "\n", $training_data ); $num_data = count($training_data); for($i=0;$i<$num_data;$i++) { if($i % 2) { $training_data['outputs'][] = explode( " ", $training_data[$i]); }else{ $training_data['inputs'][] = explode( " ", $training_data[$i]); } } foreach ($training_data as $key => $value) { if (is_numeric($key)) { unset($training_data[$key]); } } return $training_data; }function create_train_callback($num_data, $num_input, $num_output) { global $training_data; global $current_dataset; $dataset = array("input" => $training_data['inputs'][$current_dataset], "output" => $training_data['outputs'][$current_dataset]); $current_dataset++; return $dataset;}$record_id = 1; $current_dataset = 0;$num_input = 2;$num_output = 1;$num_layers = 3;$num_neurons = 3;$desired_error = 0.001;$max_epochs = 500000;$epochs_between_reports = 1000;$training_data = get_training_data_from_db($record_id); $training_data = prepare_data_from_db($training_data); $num_data = count($training_data["input"]); $train_data = fann_create_train_from_callback($num_data, $num_input, $num_output, "create_train_callback");if ($train_data) { $ann = fann_create_standard($num_layers, $num_input, $num_neurons, $num_output); if ($ann) { fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC); fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC); if (fann_train_on_data($ann, $train_data, $max_epochs, $epochs_between_reports, $desired_error)){ print('XOR trained.<br>' . PHP_EOL); $input = array(-1, 1); $calc_out = fann_run($ann, $input); printf("xor test (%f,%f) -> %f\n", $input[0], $input[1], $calc_out[0]); fann_destroy($ann); } }}?>