Foros del Web » Programando para Internet » PHP »

Hacer una busqueda MYsql...

Estas en el tema de Hacer una busqueda MYsql... en el foro de PHP en Foros del Web. Hola tengo esto pero no me funciona bien , que hago mal. Código: <body> <input type="button" value="Buscar" name="busqueda" onclick='pasar()'> <form name="rellenar"> <input type="text" name="gg" value=""> ...
  #1 (permalink)  
Antiguo 17/03/2007, 23:40
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Hacer una busqueda MYsql...

Hola tengo esto pero no me funciona bien , que hago mal.

Código:
<body> 
<input type="button" value="Buscar" name="busqueda" onclick='pasar()'> 
<form  name="rellenar"> 
<input type="text" name="gg" value="">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br> 


<script type="text/javascript">
function pasar()
  { 
<?php 
$link = mysql_connect("xx", "xx", "xx"); 
mysql_select_db("Sql83007", $link); 
$result = mysql_query("SELECT * FROM portadanimersion WHERE campolinksubida LIKE '%$buscar%' ORDER BY campolinksubida", $link); 
if ($row = mysql_fetch_array($result)){ 
   		 do {  	   	 
			$vara =$row["campotituloserie"];
			?><?php 
     		 }  
	   while ($row = mysql_fetch_array($result));           
} else { 
  	   echo "¡Sin resultados, parece ser que es la primera vez que envias esta subida, por favor rellena todos los campos!"; 
	   } 
?>
  }
  
  
document.rellenar.gg.value='<?=$vara?>';
  
</script>

</form>
Código:
Tabla mysql:

indice 	campolinksubida 	campolinkcaratula 	campotemporada 	campotituloserie 	campoformato 	campoepisodio 	campouploade
ademas no se si termine de entender bien esta fila:

Código:
$result = mysql_query("SELECT * FROM portadanimersion WHERE campolinksubida LIKE '%$buscar%' ORDER BY campolinksubida", $link);
El whrer campolinksubida, esque va a mirar en el campo de la base de datos campolinksubida haber si algo coincide con la variable buscar, pero el order by ,que es?


Gracias.
  #2 (permalink)  
Antiguo 18/03/2007, 00:01
 
Fecha de Ingreso: mayo-2005
Mensajes: 72
Antigüedad: 14 años, 6 meses
Puntos: 1
Re: Hacer una busqueda MYsql...

hola,
tienes un pequeño error en tu sentencia... te falto UN desc o un asc <== de que forma lo quieres ordenar... aqui te va arreglado:
Cita:
SELECT * FROM portadanimersion WHERE campolinksubida LIKE '%$buscar%' ORDER BY campolinksubida DESC
DESC = descendiendo
ASC = ascendiendo

buena suerte :D
__________________
Diseñador Gráfico / Programador PHP / Cisco Certified Network Associate (CCNA) / CSS / Java Scripting / SQL / C-Scripting / Entre otros...

:cool:
BOX
  #3 (permalink)  
Antiguo 18/03/2007, 06:56
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Re: Hacer una busqueda MYsql...

Me estoy volviendo loco llevo dos dias y no consigo ke me funcione esto:

Código:
<body> 
<form  name="rellenar"> 
<input type="text" name="gg">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br> 
<input type="button" onclick="pasar()" value="ok">

<script>
function pasar()
  { 
  
<?php 

$link = mysql_connect("xx", "xx", "xx"); 
mysql_select_db("Sql830", $link); 
$result = mysql_query("SELECT * FROM portadanimersion WHERE indice LIKE '$buscar' ORDER BY indice", $link); 
if ($row = mysql_fetch_array($result))
   { 
   do 
   	  {  	   	 
	  $vara =$row["campotituloserie"];
      }   
	   while ($row = mysql_fetch_array($result));            
   }
 else 
   { 
echo "¡Sin resultados, parece ser que es la primera vez que envias esta subida, por favor rellena todos los campos!"; 
   } 
?>
  }
  	 document.rellenar.gg.value='<?=$vara?>';

  </script>
</form>
</body>
Nada ke no consigo ke funcione, y no se en que fallo, lo que quiero es que al escribir un numero y dar al boton compruebe los indices de mi base de datos y si alguno coincide me sake una columna en el texto de name gg.

Veis algo mal?
  #4 (permalink)  
Antiguo 18/03/2007, 08:21
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Re: Hacer una busqueda MYsql...

Ya vi ke me falla, habria modificado la respuesta anterior pero no se que pasa que no me deja


SELECT * FROM portadanimersion WHERE campolinksubida LIKE '%$buscar%' ORDER BY campolinksubida DESC

'%$buscar%' si cambio eso directamente por '2' que seria el registro nº 2 o cualquier otro me funciona.

He probado a quitar los % pero nada, como hago para que solo salga el resultado que coincida totalemnte con el texto que escribi a buscar?
  #5 (permalink)  
Antiguo 18/03/2007, 08:48
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Hacer una busqueda MYsql...

Saludos ....


que respuesta te tiene que dar ??
  #6 (permalink)  
Antiguo 18/03/2007, 08:56
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Hacer una busqueda MYsql...

Prueba esto

Código PHP:
<script type="text/javascript">
function pasar()
  { 
<?php 
 $link 
mysql_connect("xx""xx""xx"); 
 
mysql_select_db("Sql83007"$link); 
 
$sql="";
 
$sql.="SELECT campotituloserie FROM portadanimersion WHERE campolinksubida LIKE '%".$buscar."%' ORDER BY campolinksubida";  
 
$res=mysql_query($sql$link);
 if(
mysql_num_rows($res$link)>0$vara mysql_result($res,0,campotituloserie);
 else 
$vara ="Sin resultados";
 
mysql_free_result($res$link);
?>
  }
document.rellenar.gg.value='<?=$vara?>';
</script>
un saludo.
  #7 (permalink)  
Antiguo 18/03/2007, 09:00
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Hacer una busqueda MYsql...

Veo que usas un formulario .....


que es lo que quieres hacer ?

algo anda mal antes.
  #8 (permalink)  
Antiguo 18/03/2007, 09:09
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Re: Hacer una busqueda MYsql...

Asi me sale de la columna de tituloserie de mysql de la fila 0

if(mysql_num_rows($res)>0) $vara = mysql_result($res,0,campotituloserie);

si cambio ese 0 por otro numero es esa la fila que me saca pero necesito que me saque la fila que coincida con lo que se escribe el el texto.

Se podria cambiar ese 0 por el valor de la caja de texto, como seria?
  #9 (permalink)  
Antiguo 18/03/2007, 09:30
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Hacer una busqueda MYsql...

Vi tu otro post .. y el consejo que te dan es lo mas OPTIMO


usa AJAX ... tienes que usar AUTOCOMPLETAR a lo que logro entender.


un saludo.
  #10 (permalink)  
Antiguo 18/03/2007, 09:40
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Re: Hacer una busqueda MYsql...

Si no hay mas remedio lo mirare, pero de eso si ke no se na de na xD.

Esque haciendo pruebas

si pongo esto

<form method="post" name="rellenar">
<input type="text" name="gg">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="Buscar" name="busqueda">


me funciona a la perfeccion pero en cuanto quito el method="post" del form y cambio el input a buttom, para usar el onclick... se fastidio ya no me funciona,y es asi como lo necesito ya que en la misma hoja tengo que hacer que se rellene los campos si coinciden con lo que escribimos, pero tambien luego tengo que usar otro form post para enviar los dastos a la base de datos.

Gracias por todo.
  #11 (permalink)  
Antiguo 18/03/2007, 09:51
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Hacer una busqueda MYsql...

si quieres usar BD y comprobar la existencia de algun campo en tus tablas necesariamente tienes que usar AJAX.

a no ser que cargues todos tus datos en una tabla en el JavaScript y luego puedas comprobar si existe en tu input de tu formulario pero se hace muy lioso.


un saludo.
  #12 (permalink)  
Antiguo 18/03/2007, 10:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Re: Hacer una busqueda MYsql...

Lioso y mas llevo dos dias y no he conseguido haser lo ke me proponia.

Mira voy a explicar mejor lo que necesitaba y ya mañana mirare lo del ajax

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> 
<body> 
<form  method="post" name="rellenar"> 
<input type="text" name="gg">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br> 
<input type="submit"  value="rellenar">

<?php 
$link = mysql_connect("xx", "xx", "xx"); 
mysql_select_db("xx", $link); 
$result = mysql_query("SELECT * FROM portadanimersion WHERE indice LIKE '%$buscar%'  ORDER BY indice" , $link); 
if ($row = mysql_fetch_array($result)){ 
do {  	   	 
			$vara =$row["campotituloserie"];
			?><script>document.rellenar.gg.value='<?=$vara?>';</script>
			
			<?php 
      }   
	   while ($row = mysql_fetch_array($result)); 
            
} else { 
echo "¡Sin resultados, parece ser que es la primera vez que envias esta subida, por favor rellena todos los campos!"; 
} 
?>
</form>
</body> 
</html>
Este codigo funciona a la perfeccion --> Comprobarlo AKI

Si escribis el 1 o el 2 o el 3... hasta el 7 saldra el dato de otra columna de la misma fila, que es lo que quiero.



Pero ahora esto mismo sin usar en el form el method post ni en el boton el submit , es decir usando el onclick y la funcion no me funciona:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> 
<body> 

<form  name="rellenar"> 
<input type="text" name="gg">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br> 
<input type="button" onclick="pasar()" value="Generar codigo post">

<script type="text/javascript">
function pasar()
  { 

<?php 
$link = mysql_connect("xx", "xx", "xx"); 
mysql_select_db("xx", $link); 
$result = mysql_query("SELECT * FROM portadanimersion WHERE indice LIKE '%$buscar%' ORDER BY indice" , $link); 
if ($row = mysql_fetch_array($result)){ 
do {  	   	 
			$vara =$row["campotituloserie"];
			?>document.rellenar.gg.value='<?=$vara?>';
			<?php 
      }   
	   while ($row = mysql_fetch_array($result)); 
            
} else { 
echo "¡Sin resultados, parece ser que es la primera vez que envias esta subida, por favor rellena todos los campos!"; 
} 
?>
  }
  </script>
</form>
</body> 
</html>
Como se puede ver desde desde AKI

Aqui lo que sucede es que siempre saca la ultima fila de la base de datos...

Pero si en este ultimo codigo en la line del where indice Like... cambio el %$buscar% por el 1, entonces al cargar la web me saca lo que tendria que sacar cuando escribes 1 y le das al boton.


Antes que nada agradeceros todo, y siento si ahora he metido demasiada parrafada,pero queria dejarlo bien explicado y si no se puede hacer asi, entonces me mirare mañana lo de ajax.

  #13 (permalink)  
Antiguo 18/03/2007, 10:31
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Hacer una busqueda MYsql...

te fijaste tu codigo .. tienes un error .. al FINAL luego de cerrar </html>

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> 
<body> 
<form  name="rellenar"> 
<input type="text" name="gg">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br> 
<input type="button" onclick="pasar()" value="Generar codigo post">
<script type="text/javascript">
function pasar()
  { 
document.rellenar.gg.value='Los hombres de Paco';
   document.rellenar.gg.value='Scrubs';
   document.rellenar.gg.value='Weeds';
   document.rellenar.gg.value='Battlestar galactica';
   document.rellenar.gg.value='Mujeres desesperadas';
   document.rellenar.gg.value='Cinco hermanos';
   document.rellenar.gg.value='Kyle XY';
   document.rellenar.gg.value='Sin rastro';
     }
  </script>
</form>
</body> 
</html>
<!--
<script type="text/javascript">
function pasar()
  { 
  }
document.rellenar.gg.value='Cinco hermanos';
  </script>
 
  --> 
haber que te sale ...
  #14 (permalink)  
Antiguo 18/03/2007, 12:16
 
Fecha de Ingreso: diciembre-2004
Mensajes: 371
Antigüedad: 15 años
Puntos: 0
Re: Hacer una busqueda MYsql...

La cosa es siempore la misma no hace caso de %$buscar% y saca los resultados desde el primero hasta el ultimo.. no se ve por ke lo hace rapido pero si pongo un alert se va viendo como saca desde el principio hasta el fin.
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 01:51.