Foros del Web » Programando para Internet » PHP »

Algo muy basico

Estas en el tema de Algo muy basico en el foro de PHP en Foros del Web. Estimado, Me pueden ayudar con algo. Quiero que cuando un usuario ponga un numero en un campo y haga click en enviar, se abra una ...
  #1 (permalink)  
Antiguo 14/12/2008, 12:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Algo muy basico

Estimado,

Me pueden ayudar con algo.
Quiero que cuando un usuario ponga un numero en un campo y haga click en enviar, se abra una web por ejemplo:

<Campo> <Boton>
12 - Enviar
web: www.miweb.com/?id=12

Me pueden ayudar por favor.
  #2 (permalink)  
Antiguo 14/12/2008, 12:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Algo muy basico

Partiendo de tu ejemplo:

Código HTML:
<form action="http://www.miweb.com/" method="get" name="formulario">
<input type="text" name="id" /><input type="submit" name="submit" value="Boton" />
</form> 
Eso es todo, al introducir un numero, lo llevara a la pagina, por ejemplo, http://www.miweb.com/?id=numerointroducido
  #3 (permalink)  
Antiguo 14/12/2008, 12:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Algo muy basico

Wau!!.. Que rapido!.

Muchas pero muchas gracias!.

Me podrías ayudar con una duda mas por favor?.
  #4 (permalink)  
Antiguo 14/12/2008, 12:41
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Algo muy basico

Cita:
Iniciado por krisiun1 Ver Mensaje
Wau!!.. Que rapido!.

Muchas pero muchas gracias!.

Me podrías ayudar con una duda mas por favor?.
Claro, para eso estamos.
  #5 (permalink)  
Antiguo 14/12/2008, 12:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Algo muy basico

Estimado,

Tengo un codigo de un buscador, funciona de maravilla. Pero cuando lista las opciones de buscar me pone los campos, por ejemplo id, compured, etc... Me gustaria que los campos fueran mas leibles, por ejemplo en vez de compured diga: Computador con Red. Me entiendes?. Mira te pego el codigo.

Lo que trato de decir que el buscador funciona de maravilla pero me copia y pega las tablas y yo quiero poder cambiarle esos nombres sin cambiar el nombre de las tabalas, te pego el codigo.

Código PHP:
<?
$bd_servidor 
"localhost";
$bd_usuario "root";
$bd_contrasenya "";
$bd_bdname "ctc";
$bd_tabla "computadores"// Tabla donde se harán las búsquedas
// Conexión y selección de la base de datos
$link mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);
////////////////////////////
// Formulario
///////////////////////////
?><style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Geneva, sans-serif;
    font-size: xx-small;
    color: #000;
}
-->
</style>
<center>
<p><h2>Introduzca el criterio de busqueda</h2></p>
<p><form name="buscador" method="post" action="buscador_generico.php"><br>
Buscar en:
<select name="campo">
<?php

//Con este query obtendremos los campos por los cuales el usuario puede buscar

$result mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link);

while(
$row mysql_fetch_row($result)) {

// en $row[0] tenemos el nombre del campo
// de esta manera no necesitamos conocer el nombre de los campos
// por lo que cualquier tabla nos valdrá

?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[0]; ?></option>
<?php

}

?>
</select>
Criterio(s): 
<input type="text" name="palabra" />
<input type="submit" value="Buscar" name="enviar">
</form></p>
</center>

<?

////////////////////////////
// Proceso del Formulario
///////////////////////////

if(isset($_POST['enviar'])) {

// Solo se ejecuta si se ha enviado el formulario

$query "SELECT * from $bd_tabla WHERE `{$_POST['campo']}` LIKE '%{$_POST['palabra']}%'";

$result mysql_query($query,$link);



$found false// Si el query ha devuelto algo pondrá a true esta variable

while ($row mysql_fetch_array($result)) {

$found true;

echo 
"<p>";

foreach(
$row as $nombre_campo => $valor_campo) {

// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.


if(is_int($nombre_campo)) {

continue; 
//Cuando hacemos mysql_fetch_array, php genera un array
// con todos los valores guardados dos veces, uno con
// índice numérico y otro con índice el nombre del campo.
// Solo nos interesa el del nombre del campo.

}

echo 
"<b>".$nombre_campo."</b> : ".$valor_campo."<br>";
}

echo 
"</p>";

}

if(!
$found) {

echo 
"No se encontro la palabra introducida";

}

}
?>
  #6 (permalink)  
Antiguo 14/12/2008, 12:53
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Algo muy basico

El problema reside aqui:

Código PHP:
<select name="campo"> 
<?php 

//Con este query obtendremos los campos por los cuales el usuario puede buscar 

$result mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link); 

while(
$row mysql_fetch_row($result)) { 

// en $row[0] tenemos el nombre del campo 
// de esta manera no necesitamos conocer el nombre de los campos 
// por lo que cualquier tabla nos valdrá 

?> 
<option value="<?php echo $row[0]; ?>"><?php echo $row[0]; ?></option> 
<?php 



?> 
</select>
Estas mandando una consulta que te devuelve el nombre de los campos de la base de datos, y dejarle al usuario ver esa informacion no es muy seguro.

Lo que debes hacer es en vez de "sacar" el nombre de los campos de la base de datos, es crear un <select> normal y dependiendo de la opcion seleccionada, elegir una u otra tabla:

Código HTML:
<select name="seleccion">
  <option value="1">COmputador de Red</option>
</select> 
Luego en tu codigo, haces un SWITCH, justo antes de la consulta:

Código PHP:
switch($_POST['seleccion']) {
case 
1:
//campo en el cual buscar:
$tabla 'compured';
break;
default:
//campo en el cual buscar por defecto
break;

Pero, si tu numero de campos incrementa, tendras que agregarlo al codigo. Pero no te preocupes por eso, normalmente al crear una base de datos para una aplicacion no se agregan columnas, todo eso se anticipa antes de poner la aplicacion a funcionar.
  #7 (permalink)  
Antiguo 14/12/2008, 13:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Algo muy basico

Se ve bastante claro!... Ahora una consulta... Donde agrego este codigo?.

Código PHP:
switch($_POST['seleccion']) {
case 
1:
//campo en el cual buscar:
$tabla 'compured';
break;
default:
//campo en el cual buscar por defecto
break;

Gracias!!
  #8 (permalink)  
Antiguo 14/12/2008, 13:08
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Algo muy basico

Despues de:

Código PHP:
//////////////////////////// 
// Proceso del Formulario 
/////////////////////////// 

if(isset($_POST['enviar'])) { 
Pero tienes que tener en cuenta que es solo un ejemplo. Tienes que adecuarlo a tus necesidades.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:28.