Sería algo asi:
$query = "SELECT $var1=id, $var2=nombre, $var3=apellido, $var4=mrin, $var5=mrinpadres FROM datos WHERE apellido LIKE '%{$_POST['apellido']}%'";
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
![Corazón](http://static.forosdelweb.com/fdwtheme/images/smilies/love.png)
| ||||
solecoza ... lo que vos queres hacer no es posible ... lo que si podes hacer es tomar el recordset y con la funcion mysql_fetch_array($RS) podes asignar a las variables ... un ejemplo: Código PHP: En el link que te dejo vas a encontrar una explicacion muy clara, asi que me limito a explicar con palbras para no confundir... saludos
__________________ Mi Blog http://turco7.blogspot.com Usuario Linux : 404289 Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales! |
| ||||
Uy gracias, tu respuesta fue clara y me sirvió mucho. Te hago otra consulta: Yo hago una busqueda de apellidos, por lo cual me va a traer varios, nunca un solo registro. Hay manera de recorrer todo el resultado sin usar foreach? O en todo caso te pasaría el código, porque no se qué parámetros ponerle al foreach en el caso que estoy usando yo, y me salen TODOS los campos, cuando yo solo quiero mostrar nombre y apellido. Los demás datos los envío por el hipervínculo, por eso el select es *. Te dejo todo acá y te agradezco de antemano!!! <? //datos DB $bd_servidor = "localhost"; $bd_usuario = "X"; $bd_contrasenya = "X"; $bd_bdname = "X"; $bd_tabla = "datos"; $link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya); mysql_select_db($bd_bdname,$link); ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Apellido: <input type="text" name="apellido" size="25"> <input type="submit" name="buscar" value="buscar"> </form> <? if(isset($_POST['buscar'])) { $query = "SELECT * FROM datos WHERE apellido LIKE '%{$_POST['apellido']}%'"; $result = mysql_query($query); $found = false; while($row = mysql_fetch_array($result)){ $id = $row['id']; $nombre = $row['nombre']; $apellido = $row['apellido']; $matrimonio = $row['mrin']; $padres = $row['mrinpadres']; $found = true; echo "<p>"; foreach($row as $nombre => $apellido) { if(is_int($nombre)) { continue; } echo "<a href=\"detail.php?id=$id&matrimonio=$matrimonio&pa dres=$padres\">".$nombre." ".$apellido."</a></br>"; } echo "</p>"; } if(!$found) { echo "No se encontró el apellido introducido"; } } ?> |
| |||
Y para que usas el "foreach()" si ya con el while() tienes tu $nombre? Código PHP: Los "detalles" no se suelen hacer como tu lo vas hacer .. es decir, pasando todos los campos obtenidos. Lo que se hace en tu script es obtener lo mìnimo que el listado presenta y su "ID" .. ese es que que -sólo- pasas a "deatalle.php" y este a su vez harà una consulta SQL por ese ID para obtener el total o los registros que ese "detalle" tenga que hacer. detail.php Código PHP:
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Muchas gracias por aclararme las dudas. En cuanto a seleccionar todos los campos, era porque a detail.php no me da en realidad solo los detalles del sujeto buscado, sino que ejecuta otras consultas que supuestamente me traerán sus respectivos padres - conyugue - hijos. Ya logré ver al conyugue e hijos cuando le enviaba id, mrin, y mrinpadres, pero usando tu nuevo codigo que me parece mucho mas correcto, ya me perdí de como hacerlo :D Seguro voy a consultar para las consultas de padres-conyugues e hijos en breve ;) GRACIAS CLUSTER! ![]() ![]() ![]() |
| ||||
Dos consultas mas: 1) Al apretar BUSCAR en el formulario, anda todo ok. ¿Como hago para que si apreto enter tambien ande? Al apretar ENTER, me lista TODOS LOS registros, lo cual es trágico ya que son 110.000. 2) La busqueda distingue acentos, y "extractos" de apellidos (busca con un pedacito del texto), pero hay que ingresar el apellido con la primer letra en mayúscula, sino no lo encuentra. ¿Qué hacer? Gracias de nuevo ![]() ![]() ![]() |
| ||||
Botón BUSCAR y ENTER. Apellidos con mayúscula. (DOBLE DUDA) Dos dudas: 1) Tengo un formulario de búsquedas: Al apretar BUSCAR en el formulario, el código PHP se ejecuta correctamente y también mi consulta, trayendo los campos que se pidan. Al apretar ENTER, me lista TODOS LOS registros, lo cual es trágico ya que son 100.000. ¿Como hago para que si apreto ENTER tambien ande como si apretara el boton de BUSCAR? 2) La busqueda distingue acentos, y "extractos" de apellidos (busca con un pedacito del mismo), pero hay que ingresar el apellido con la primer letra en mayúscula, sino no lo encuentra. ¿Qué hacer? Gracias! ![]() ![]() ![]() |
| ||||
te respondo el segundo. suponiendo que tengo esto "algunapellido" y por lo que entiendo lo necesitas asi "Algunapellido". bueno para eso tomamos la variable que lo contiene Código PHP: ahora que si la primera tiene que se mayuscula y el resto puede ser minusculas o mayusculas solamente utiliza el ucwords esa función hace que la primera letra se vuelva mayuscula. y en cuanto a tu primera pregunta pienso = q califa010. salu2.
__________________ El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa la tristeza no existe, solo es... la ausencia de la felicidad. |
| ||||
GRACIAS!!! Ya puse lo que me diste para la primer mayúscula y anda de lujo!!!! Les paso el código del form + el IF isset que lo único que verifica es que haya sido enviado el campo. ![]() ![]() ![]() <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <span class="Estilo1">Apellido:</span> <input name="apellido" type="text" class="Estilo1" size="25"> <input name="buscar" type="submit" class="Estilo1" value="buscar"> </form> <? if(isset($_POST['buscar'])) { $a=$_POST ["apellido"]; $a=ucwords(strtolower($a)); $query = "SELECT id,nombre,apellido,mrin,mrinpadres FROM datos WHERE apellido LIKE '%$a%'"; //sigue mostrando datos, etc...... |
| ||||
Ya logré que al apretar ENTER no liste todos los registros. El problema sigue estando en otro lado: El botón BUSCAR pierde el foco al escribir el apellido, y al dar enter, no pasa nada. Trae una pagina en blanco con el form para buscar de nuevo. Es problema del FOCUS! Como le indico que luego de pasar el focus al text, y escribir, siempre esté el boton en focus? ![]() ![]() ![]() |
| |||
Cita: Los temas del "foco" y demás los debes resolver con javascript.
Iniciado por solecoza ![]() Ya logré que al apretar ENTER no liste todos los registros. El problema sigue estando en otro lado: El botón BUSCAR pierde el foco al escribir el apellido, y al dar enter, no pasa nada. Trae una pagina en blanco con el form para buscar de nuevo. Es problema del FOCUS! Como le indico que luego de pasar el focus al text, y escribir, siempre esté el boton en focus? ![]() ![]() ![]() Lo que si que puedes hacer con PHP es "validar" que el dato a buscar no sea una cadena vacía o no exista. Código PHP:
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |