- Hola hhs, gracias por el apoyo en ciertas cosas tienes razon realmente esto algo nuevo para mi y a decir verdad no tengo casi ni las bases, pero ya e indigado y reescrito en ciertas cosas mi codigo y he probado muchas cosas en el codigo.
- Ya decidi tener la conexion separa del crud. te espondre lo que llevo para ver si puedes ayudarme.
1- tengo este formulario.
Código HTML:
Ver original<!DOCTYPE html>
<link rel="stylesheet" type="text/css" href="css/style.css"> <form action="board_table.php" method="post"> <center>
</center>
<input type="hidden" name="session"> <input id="sub" type="submit" value="Iniciar Conexión">
2- Ese formulario se viene aca.
Código PHP:
Ver originalCódigo
<?php
require_once 'conexion.table.php';
require_once 'crud.php';
$cod_empresa = (isset($_POST['cod_empresa'])) ?
$_POST['cod_empresa'] : ""; $Conexion = new Conexion();
$Conexion->conectar($cod_empresa);
if(isset($_POST['session'])) {
}
?>
2.1 - Donde la clase conexion es la siguiente.
Código PHP:
Ver originalCódigo
<?php
class Conexion
{
public $ndatabase ="";
public function conectar($cod_empresa="")
{
$this->ndatabase = $cod_empresa;
$server = 'sbvbieloven';
$database = $this->ndatabase;
$username = 'profit';
$password = 'profit';
return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
}
}
?>
3- Seguidamente por la condicion del Punto 2 me redirecciona a esta pag.
Código HTML:
Ver originalCódigo
<?php
require_once "conexion.table.php";
require_once "crud.php";
$model = new Crud;
$model->Read();
$filas = $model->rows;
$total = count($filas);
?>
<link rel="stylesheet" type="text/css" href="css/style.css"> <h3>Criterio de Busquedas
</h3> <form class="crit-form" name="search_form" id="search_form"> <small> El Total de Filas en Base de Datos:
<?php echo $total ?> </small> <input type="text" name="search" id="search_fi" placeholder="introduzca Codigo Ficha Ej: Ch001"> <input type="text" name="search" id="search_ci" placeholder="Cedula Use Puntos Ej: 49.781.190"> <input type="text" name="search" id="search" placeholder="introduzca un Nombre Ej: Antonio"> <input type="submit" Value="Procesar">
4- Donde mi clase Crud es la siguiente.
Código PHP:
Ver originalCódigo
<?php
class Crud
{
public $insertInto;
public $insertColumns;
public $insertValues;
public $mensaje;
public $rows;
public function Create()
{
$model = new Conexion;
$conexion = $model->conectar();
$insertColumns = $this->insertColumns;
$insertValues = $this->$insertValues;
$sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
$consulta = $conexion->prepare($sql);
if (!$consulta)
{
$this->mensaje = "Error...";
}
else
{
$consulta->execute();
$this->mensaje = "Registro Creado";
}
}
public function Read()
{
$model = new Conexion();
$conexion = $model->conectar();
$sql = "SELECT * FROM snemple";
$consulta = $conexion->prepare($sql);
$consulta->execute();
while ($filas = $consulta->fetch())
{
$this->rows[] = $filas;
}
}
public function Searchi()
{
$model = new Conexion();
$conexion = $model->conectar($_POST['cod_empresa']);
$search = $_POST['search'];
$sql = "SELECT nombres, apellidos, ci, cod_emp FROM snemple WHERE nombres LIKE '%".$search."%' or ci LIKE '%".$search."%' or cod_emp LIKE '%".$search."%'";
$consulta = $conexion->prepare($sql);
$consulta->execute();
while ($filas = $consulta->fetch())
{
$this->rows[] = $filas;
}
}
}
?>
5- Ahora he añadido algunas cosas como Ajax de la siguiente forma. Ya inclui las etiquetas jquery y mi otro script ajax que es donde esta mi funcion de esta forma.
Código Javascript
:
Ver originalCódigo
$(function(){
$('#search').focus();
$('#search_form').submit(function(e){
e.preventDefault();
})
$('#search_form input[type=text]').keyup(function(){
var envio = $(this).val();
$('#resultados').html('<h2><img src="img/loadin.gif" width="20" /> Cargando...</h2>');
$.ajax({
type: 'POST',
url: 'search.php',
data: ('search='+envio),
success: function(resp){
if (resp!="") {
$('#resultados').html(resp);
}
}
})
})
})
6- Donde el Search.php es este.
Código PHP:
Ver originalCódigo
<?php
require_once "conexion.table.php";
require_once "crud.php";
$search = '';
$nombres = '';
if (isset($_POST['search'])){ $search = $_POST['search'];
}
$model = new Crud;
$model->Searchi($search);
$filas = $model->rows;
if ($total>0 && $search!='')
{
?>
<select class="selected" size="10">
<?php
foreach ($filas as $fila)
{
?> <option id="resultados">
<?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos'];
?> </option>
<?php
}
?>
</select>
<?php
}
else { if($total>0 && $search=='') {
?>
<select size="10">
<?php
foreach ($filas as $fila)
{
?>
<option id="resultados">
<?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos']; ?>
</option>
<?php
}
?>
</select>
<?php
}
}
?>
- Eso ultimo me actualiza el Option de mi html y me muestra los registros en mi Select por medio de la funcion Searchi.
- Ahora aclaro todo eso me funciona de 10 si dejo mi clase conexion asi y obviamente quitando los argumentos a los metodos del Crud
Código PHP:
Ver originalCódigo
<?php
class Conexion
{
public function conectar()
{
$server = 'sbvbieloven';
$database = 'HUYAP_N';
$username = 'profit';
$password = 'profit';
return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
}
}
?>
- Si la dejo asi funciona al pelo me muestra los registros de esta BD fino y como yo quiero, pero no es la idea porque en mi primer html tengo un select con 3 opciones que son 3 bd distintas en el mismo gestor de bd y bueno la idea principal es esa pues tener una funcion que me permita visualizar la informacion que yo quiera al selecionar cualquiera de esas 3 bd.