I did a multicary program but with mysqli to do tests since they do not let me take information about the work, where you work with sql server and when passing the connection and other statements in the php to sql server I get this error:
sqlsrv_num_rows () expects parameter 1 to be resource, boolean given in Ult \ process.php on line 40
I leave the code
<?php
error_reporting(-1);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
function creaWhere($attr, $cols){
$tmp = ""; // variable temporal para sacar los wheres de la query
if (count($attr) != 0) {
foreach ($attr as $val) {
$tmp .= " (";
foreach ($cols as $col) {
$tmp .= ($col === end($cols))? $col." LIKE "."'%".$val."%'" : $col." LIKE "."'%".$val."%' OR ";
}
$tmp .= ($val === end($attr))? ")" : ") AND";
}
return $tmp;
}else{ return "1";} //regresa 1 para mostrar todos los datos de la tabla
}
include "dicc.php";
//variables POST
$serch = utf8_encode($_POST['search']);
$table = $_POST['table'];
//--------------
$attr = explode(' ', $serch); //agregamos cada palabra del search a una entrada de attr
//coneccion a BD cambiar por sql
/*$conn = new sqlsrv_connect (SVR, USR, PSS, DBO);
$conn->set_charset("utf8");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}*/
$serverName = "10.21.22.16";
$connectionInfo = array( "Database"=>"RENAPO", "UID"=>"registrocivil", "PWD"=>"rc21", "CharacterSet" => "UTF-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
//-------------------------------
$where = creaWhere($attr, $COLUMNS[$DBOS[$table]]); //le metemos los atributos de busqueda y las columnas en las que debe de buscar a la funcion
$query = "SELECT ". implode(", ", $SELECTS[$DBOS[$table]]) ." FROM RENAPO.".$DBOS[$table]." WHERE ". $where; //crea la query que devolvera las columnas indicadas en el diccionario en el array SELECTS
$results = sqlsrv_query($conn, $query, array(), array("Scrollable"=>"buffered")); //ejecuta la query
if (sqlsrv_num_rows($results) == 0) { //checa si hay resultados
$hay = 0;
}else {
$hay = 1;
$headers = array_keys($results->fetch_assoc()); // si hay resultados extrae los headers de las columnas para despues ponerlo en la tabla html
}
?>
And here I put the dicc.php
<?php
define("SVR", "10.21.22.16"); //direccion del servidor
define("USR", "registrocivil"); //usuario con permisos sobre la base
define("PSS", "rc21"); //pass en este caso el usuario entra sin pass
define("DBO", "RENAPO"); //base de datos donde esta todo el desma
$DBOS = ["NACIMEXT", "DEFUNEXT", "MATREXT"]; // array con las tablas a las que se accesan (esta coordinado con los values del combobox)
//columnas en las que se buscaran los datos
$COLUMNS = [
"NACIMEXT" => ["NOMBRE", "PATERNO", "MATERNO", "FECHANAC", "ACTA", "LIBRO", "ANO", "MUNICIPIO", "JUZGADO"],
"DEFUNEXT" => ["NOMBREFIN", "MATERNOFIN", "FECHADEF", "MUNICIPIO", "ANO", "LIBRO", "JUZGADO", "ACTA"],
"MATREXT" => ["NOMBREEL", "PATERNOEL", "MATERNOEL", "NOMBREELLA", "PATERNOELLA", "MATERNOELLA", "FECHAREGIS", "MUNICIPIO", "ANO", "JUZGADO", "LIBRO", "ACTA"]
];
//instrucciones de como desplegar los datos
$SELECTS = [
"NACIMEXT" => [ "NOMBRE as Nombres",
"PATERNO as 'Apellido Paterno'",
"MATERNO as 'Apellido Materno'",
"FECHANAC as 'Fecha de Nacimiento'",
"ACTA as 'Número de Acta'",
"LIBRO as 'Número de Libro'",
"ANO as Año", "MUNICIPIO as Municipio",
"JUZGADO as 'Número de Juzgado'"],
"DEFUNEXT" => [ "NOMBREFIN as Nombres", "MATERNOFIN as 'Apellido Materno'",
"FECHADEF as 'Fecha de Defunción'", "MUNICIPIO as Municipio",
"LIBRO as 'Número de Libro'",
"ANO as Año",
"JUZGADO as 'Número de Juzgado'",
"ACTA as Acta"],
"MATREXT" => [ "CONCAT(NOMBREEL, ' ', PATERNOEL, ' ', MATERNOEL, ' y ', NOMBREELLA, ' ', PATERNOELLA, ' ', MATERNOELLA) as Casados",
"MUNICIPIO as Municipio",
"LIBRO as 'Número de Libro'",
"ANO as Año",
"JUZGADO as 'Número de Juzgado'",
"ACTA as Acta"]
]
?>