'####')); // Split by strings between double-quotes $str_arr = preg_split('/("[^"]*")/',$str_encoded_quotes,-1,PREG_SPLIT_DELIM_CAPTURE); foreach ($str_arr as $substr) { // If value is a dot or a space, do nothing if (!preg_match('/^[\s\.]$/',$substr)) { // If value is between double-quotes, it's a string // Return as is if (preg_match('/^"(.*)"$/',$substr)) { $substr = preg_replace('/^"(.*)"$/','\1',$substr); // Remove double-quotes around $terms[] = strtr($substr,array('####'=>'"')); // Get escaped double-quotes back inside the string // Else, it must be splitted } else { // Split by dot or space $substr_arr = preg_split('/[\.\s]/',$substr,-1,PREG_SPLIT_NO_EMPTY); foreach ($substr_arr as $subsubstr) $terms[] = strtr($subsubstr,array('####'=>'"')); // Get escaped double-quotes back inside string } } // Else, it's an empty substring } $where = ""; for ($i = 0; $i < count($fields); $i++) { $field = $fields[$i]; $wwhere = ""; for ($w = 0; $w < count($terms); $w++) { $word = db_escape_string($terms[$w]); if (strlen($wwhere)) $wwhere .= "AND "; $wwhere .= "$field LIKE '%$word%' "; } if (strlen($where)) $where .= "OR "; if (strlen($wwhere)) $where .= "($wwhere) "; } $query = "SELECT * FROM $table_name WHERE school_num = $school_num AND ($where)"; writeLog($query); $results = db_query($query); // Format data for return $return_data = array(); $num_records = db_num_rows($results); if ($num_records > 0) { writeLog("records: $num_records\n"); $return_data[] = array(); while ($row = db_fetch_assoc($results)) { $text = ""; for ($i = 0; $i < count($fields); $i++) { $field = $fields[$i]; $text .= $row[$field].' '; } $text = trim($text); $record_num = $row['record_num']; $return_data[] = array( "value" => $text, "record_num" => $record_num ); } } writeLog("completed\n"); echo(json_encode($return_data)); ?>