Consulta en PHP y guardar en arreglo ¿?

Duckds

Bovino maduro
#1
Bueno compañeros tengo una base de datos y tiene varias tablas lo que quiero hacer es un formulario que tenga varios campos en el que si se escribe en cualquier campo se realice una busqueda la cual la tengo en un archivo diferente al formulario y quiero que el resultado me lo muestre en un grid con la posibilidad de seleccionarlo y me muestre solo los datos de esa fila en otra ventana seria mas o menos asi

Pag1.
Nombre:( )
Telefono:( )
Numero cliente:( )

Aceptar

Suponiendo que el usuario solo escribe su nombre o telefono o numero de cliente y solo 1 y no los 3 quiero que me haga una consulta

que seria mas o menos

Esta seria la segunda pagina que solo sirve como el buscador.php

Select c.nombre, c.apellido, c.direccion, c.telefono, c.num_cliente, p.num_cliente, p.peliculas_rentadas, p.fcha_renta, p.fecha_devolucion FROM cliente c, peliculas p WHERE c.nombre like $nombre or c.apellido like $nombre or c.telefono like $telefono or c.num_cliente = $numcliente

Suponiendo que el usuario teclea en nombre Juan
y en la base tengo 3 juan:
Juan Perez
Juan Lopez
Juanita hernandez

en la tercer pagina me mostraria el resultado de los 3 clientes de nombre like JUAN en una grid que tenga un campo en el cual si lo selecciono me muestre los datos de esse cliente solamente:

nombre: JUAN PEREZ
TELEFONO 23232323
peliculas: 3
etc.
etc.

espero me puedan ayudar ya tengo lo primero me falta solo como hacer para que la consulta se guarde en un arreglo y este me lo muestre en otra pagina

Espero me ayuden saludos a todos.
 

kirax

Bovino adicto
#2
busca en google una cla llamada grid y te resuelve tu caso amigo dejame ver si la tengo por aki todavia y la subo hace precisamente lo que quieres
 

Duckds

Bovino maduro
#3
que tal compañero pues estube buscando pero la verdad no encontre nada me podrias dar un ejemplo lo que pasa es que como te digo hago la consulta y quiero que me muestre los datos en una tabla por ejemplo.

Otra cosa como le puedo hacer para que por ejemplo en el formulario si mandan campos vacios, que esa es la idea que dejen unos campos vacios y solo haga la consulta con un campo, y la consulta no marque error?
 

ethush

Bovino maduro
#5
He visto que todos te mandan a google pero nadie se atreve a darte una idea de como podría ser... la forma básica de impresión de datos es la siguiente... por su puesto tu puedes mejorarla por ejemplo aumentando la seguridad parametrizando las consultas y demás truquillos:

podemos empezar por la consulta

$sql = "tu consulta";
$coincidencias = mysql_result($sql,$link_conexion);

//aqui viene lo interesante para almacenarlo en un arreglo o imprimirlo de forma directa... la mejor opcion es directo...
echo "coindicendas encontradas:". count($coincidencias);
while($fila = mysql_fetch_array($coincidencias)){
echo "encontrado: $fila[0]. " ".$fila[1]; //Imprimimos el nombre
}

Hay que observar que $fila[0] corresponde a cada campo de la consulta de la misma forma puedes acceder por la asociación de la columna por ejemplo $fila['nombre'] o $fila['apellido'] y para acceder a todos los elementos del registro actual; este ciclo se reproducirá hasta que no queden mas registros para convertir.

De la misma forma puedes usar mysql_fetch_row, y existen muchas opciones más... pero el ejemplo que te muestro es la forma más básica de imprimir registros.... puedes agregar html para dibujar una tabla y darlem mayor presentación... por ejemplo:

while($fila = mysql_fetch_array($coincidencias)){
echo "
<table>
<tr><td>$fila['nombre']</td><td>$fila['apellido']</td></tr>
</table>
";
}

Dentro del cliclo pueds hacer lo que desees para cada registro.suerte!
 

kirax

Bovino adicto
#6
He visto que todos te mandan a google pero nadie se atreve a darte una idea de como podría ser... la forma básica de impresión de datos es la siguiente... por su puesto tu puedes mejorarla por ejemplo aumentando la seguridad parametrizando las consultas y demás truquillos:

podemos empezar por la consulta

$sql = "tu consulta";
$coincidencias = mysql_result($sql,$link_conexion);

//aqui viene lo interesante para almacenarlo en un arreglo o imprimirlo de forma directa... la mejor opcion es directo...
echo "coindicendas encontradas:". count($coincidencias);
while($fila = mysql_fetch_array($coincidencias)){
echo "encontrado: $fila[0]. " ".$fila[1]; //Imprimimos el nombre
}

Hay que observar que $fila[0] corresponde a cada campo de la consulta de la misma forma puedes acceder por la asociación de la columna por ejemplo $fila['nombre'] o $fila['apellido'] y para acceder a todos los elementos del registro actual; este ciclo se reproducirá hasta que no queden mas registros para convertir.

De la misma forma puedes usar mysql_fetch_row, y existen muchas opciones más... pero el ejemplo que te muestro es la forma más básica de imprimir registros.... puedes agregar html para dibujar una tabla y darlem mayor presentación... por ejemplo:

while($fila = mysql_fetch_array($coincidencias)){
echo "
<table>
<tr><td>$fila['nombre']</td><td>$fila['apellido']</td></tr>
</table>
";
}

Dentro del cliclo pueds hacer lo que desees para cada registro.suerte!
bueno ahi va si es solo en una tabla
sql = select * from mitabla;
query = mysql_query($sql);
$data;
while ( data = mysql_fetch_array($query)){
}
$tables = array;
for($i; $i < count($data);$i++)
{
//aki voy metiendo los datos a mi tabla ejem
$tables[] = <table>
<tr><td>$data[$i]['col1']</td><td>$data[$i]['col2']</td></tr>
</table>
}

echo tables o algo asi espero te ayude aki esta el link que te habia dicho
http://phpgrid.com/example/
http://www.phpclasses.org/package/6125-PHP-Display-MySQL-query-results-in-an-HTML-table.html
 

Duckds

Bovino maduro
#7
Muchas gracias compañeros ps si al final lo que implemente fue mandar la consulta por medio de POST y mostrar el resultado en la misma ventana en donde se hace la consulta y mostrar el resultado en una tabla para que se alinearan los campos.

Ahora en lo que me estoy atorando es en que por ejemplo el formulario tiene 3 o 4 campos en los que se tienen que ingresar los datos que se quieran consultar pero por ejemplo las consultas serian con un solo campo ahora lo que tengo es un if anidado a otro comparando si un campo es diferente a nulo si tiene algo se hace la consulta en base a ese campo lleno si esta vacio pregunta por el siguiente campo y asi sucesivamente, PERO se me hace que es mucho codigo y quisiera saver si se puede no se hacer menos codigo ejemplo de lo que tengo

PAG 1.
Nombre:___________
Apellido:___________
Numero cuenta:__________
Numero credito: ____________

y asi solo llenando un campo obtener la consulta lo que tengo es:

busqueda.php

$nombre = $_POST["nombre"];
$apellido = $_POST["apellido"];
$numcuenta = $_POST["numcuenta"];
$numcredito = $_POST["numcredito"];

if($nombre =! null)
$consulta = select * cliente Where nombre LIKE "%$nombre%"

if($apellido =!null)
$consulta = select * from clientes WHERE apellido LIKE "%$apellido%"

if($numcuenta =! null)
$consulta = select * FROM clientes WHERE num_cuenta = $numcuenta

if($numcredito =! null)
$consulta = select * FROM clientes WHERE num_credito = $numcredito

Eso hasta el momento esta bien y corre perfecto, pero es un chorro de codigo y ps quisiera optimizar un poco el codigo no se si alguien tenga algo para evitar hacer eso o si no hay otra forma mas para reducir el codigo.

De antemano muchas gracias por contestar mi post y bueno ya estube revisando las paginas que me mandaron muchas gracias me ayudaran en algo.

SALUDOS from La laguna
 
#8
Hola Amigo yo hice exactamente lo k necesitas y efectivamente es como tlo describe Duckds, solo que yo hice todo en una sola pagina o vista, ahi pides lo k kieres bucascar, despues la pagina se llama asi misma en el formulario, preguntas si biene del submit buscar, si es asi ejecuta la busauqueda y muestra el resulta si necesitas mas detalles me avisas puede k t ayude un poco
 

valdo_kof

Bovino adicto
#10
Eso hasta el momento esta bien y corre perfecto, pero es un chorro de codigo y ps quisiera optimizar un poco el codigo no se si alguien tenga algo para evitar hacer eso o si no hay otra forma mas para reducir el codigo.

De antemano muchas gracias por contestar mi post y bueno ya estube revisando las paginas que me mandaron muchas gracias me ayudaran en algo.

SALUDOS from La laguna

lo q se me ocurre es q tus consultas las hagas en un ajax y solo lo mandes llamar cuando tu if se cumpla y tus conecciones a tu base de datos en los diferentes scripts q tengas q la verdad es lo mismo, se te haace mucho codigo en teoria xq seamos honestos sigue siendo el mismo codigo solo q representado de otra forma

me explico: si lo dejas asi tu programa solo ocupa el codigo el cual esta dentro de tu condicion por lo cual si se cumple pues se pasa el final donde ya no tienes nada de condicion q interfiera con esa accion, yo creo q si ya lo solucionaste, no importa mucho q lo optimices, si te quita codigo pero te aumenta un poco el tiempo de ejecucion q en web es lo mas esencial cuidar eso.

o intenta hacer un autocompletar, q te va dando las coincidencias conforme vasa escribiendo y cuando le des buscar pues te manda la demas informacion q necesitas ejemplo

nombre:_________boton buscar

edad:-------

direccion:______

digamos q en nombre pones juan te va a salir una lista asi

nombre; juan boton buscar
juan perez
juan quiroz
juan zea
edad:_________

direccion______

entonces cuando selecciones a juan perez y aprietes buscar pues ya te puede dar lo q necesitas y lo haces en una sola pagina usando <div>

nombre::jaun perez

edad: 28

direccion: av. siempre viva

pero yo creo q asi como lo tienes esta bien, pero esta en tu criterio
 

Duckds

Bovino maduro
#11
Que tal gracias por contestar pues lo deje asi al final como dices la conexion la deje en un archivo aparte que se manda a llamar cada vez que hago una consulta cosa que aprendi viendo ejemplos y leyendo utilizando la instruccion <?php include('nombredelarchivo.php'); ?> y de esta manera puedes mandar llamar tantas paginas quieras y por ejemplo pues te digo mando a llamar la conexion de momento y pues lo de guardarlo en areglos lo que hice mejor es guardar el id en una variable session y pues cuando me manda a otra pagina solo hago una consulta recogiendo la session que almacene para hacerla.

Muchas gracias a los que se dieron el tiempo de contestar y pues mas que nada ojala y les sirva a alguien mas que para eso somos una gran ba-komunidad =D

SALUDOS
 
Arriba