Foros del Web » Programando para Internet » PHP »

Ayuda con buscador :S

Estas en el tema de Ayuda con buscador :S en el foro de PHP en Foros del Web. hola amigos disculpen tengo un problema con este codigo, ya que estoy intentando consultar pero a lo que hago la consulta me muestra todos los ...
  #1 (permalink)  
Antiguo 12/08/2009, 08:29
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Ayuda con buscador :S

hola amigos disculpen tengo un problema con este codigo, ya que estoy intentando consultar pero a lo que hago la consulta me muestra todos los resultados encontrados, y deberia mostrarme solo el de el input buscar :S alguien me puede ayudar a solucionar esto?

necesito que me muestre solo todo lo referente al tic "Numero 2" buscado. y no que muestre todo lo que hay en la base de datos

buscador.html
Código HTML:
<html>
<head>

<title>Buscador simple en PHP</title>
</head>
<body>
<form action="buscar.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar (C.I)">
</form>



</body>
</html> 

buscar.php

Código PHP:
<?php


$conexion
=mysql_connect("localhost","root","root");
mysql_select_db("numj",$conexion);
$sql="select * from lots";
$resultado=mysql_query($sql,$conexion);
$tabla=mysql_fetch_array($resultado);
if(
$tabla){

  echo 
"<table border='0' height='*' width='10'"
      echo 
"<tr><td><b>Numero 2:</b>".$tabla['Tic']."</td></tr>";
      echo 
"<tr><td><b>el Nazareno</b></td></tr>";
  do{

      echo 
"<tr><td><b>========================</b></td></tr>";
      echo 
"<tr><td><b>Lot</b>".$tabla['Lot']."</td></tr>";
      echo 
"<tr><td><b>Num</b>".$tabla['Numero']."</td></tr>";
      echo 
"<tr><td><b>Can</b>".$tabla['cantidad']."</td></tr>";
  }while(
$tabla=mysql_fetch_array($resultado));
  echo 
"</table>";
}
else{
echo 
"No se han encontrado resultados en la busqueda";
}
mysql_close($conexion);
?>
  #2 (permalink)  
Antiguo 12/08/2009, 08:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con buscador :S

Debes usar el WHERE en la consulta y declarar ahi lo que la persona ingreso
Código php:
Ver original
  1. $sql="select * from lots WHERE columna='".$_POST["palabra"]."'";
Te sugiero leer como hacer consultas a una base de datos puedes usar este link para obtener la informacion
http://mysql.conclase.net/curso/index.php?sen=SELECT
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 12/08/2009, 08:43
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

no amigo nada me dice esto:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Loto\Ingreso\buscar.php on line 29
No se han encontrado resultados en la busqueda
  #4 (permalink)  
Antiguo 12/08/2009, 08:47
 
Fecha de Ingreso: agosto-2009
Ubicación: Lanzarote - Canarias
Mensajes: 57
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Ayuda con buscador :S

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $conexion=mysql_connect("localhost","root","root");
  5. mysql_select_db("numj",$conexion);
  6. $sql="select * from lots WHERE Tic LIKE '%$_POST[palabra]%' AND Lot LIKE '%$_POST[palabra]%' AND Numero LIKE '%$_POST[palabra]%' AND cantidad LIKE '%$_POST[palabra]%'";
  7. $resultado=mysql_query($sql,$conexion);
  8. $tabla=mysql_fetch_array($resultado);
  9. if($tabla){
  10.  
  11.   echo "<table border='0' height='*' width='10'";
  12.       echo "<tr><td><b>Numero 2:</b>".$tabla['Tic']."</td></tr>";
  13.       echo "<tr><td><b>el Nazareno</b></td></tr>";
  14.   do{
  15.  
  16.       echo "<tr><td><b>========================</b></td></tr>";
  17.       echo "<tr><td><b>Lot</b>".$tabla['Lot']."</td></tr>";
  18.       echo "<tr><td><b>Num</b>".$tabla['Numero']."</td></tr>";
  19.       echo "<tr><td><b>Can</b>".$tabla['cantidad']."</td></tr>";
  20.   }while($tabla=mysql_fetch_array($resultado));
  21.   echo "</table>";
  22. }
  23. else{
  24. echo "No se han encontrado resultados en la busqueda";
  25. }
  26. mysql_close($conexion);
  27. ?>
  #5 (permalink)  
Antiguo 12/08/2009, 08:51
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 7 meses
Puntos: 41
Respuesta: Ayuda con buscador :S

Jamás utilices $_POST y $_GET, sin ser filtrados, como haces en este código.
  #6 (permalink)  
Antiguo 12/08/2009, 08:53
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

nada amigo continua el error :S

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Loto\Ingreso\buscar.php on line 29
No se han encontrado resultados en la busqueda


Cita:
Iniciado por esdesign Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $conexion=mysql_connect("localhost","root","root");
  5. mysql_select_db("numj",$conexion);
  6. $sql="select * from lots WHERE Tic LIKE '%$_POST[palabra]%' AND Lot LIKE '%$_POST[palabra]%' AND Numero LIKE '%$_POST[palabra]%' AND cantidad LIKE '%$_POST[palabra]%'";
  7. $resultado=mysql_query($sql,$conexion);
  8. $tabla=mysql_fetch_array($resultado);
  9. if($tabla){
  10.  
  11.   echo "<table border='0' height='*' width='10'";
  12.       echo "<tr><td><b>Numero 2:</b>".$tabla['Tic']."</td></tr>";
  13.       echo "<tr><td><b>el Nazareno</b></td></tr>";
  14.   do{
  15.  
  16.       echo "<tr><td><b>========================</b></td></tr>";
  17.       echo "<tr><td><b>Lot</b>".$tabla['Lot']."</td></tr>";
  18.       echo "<tr><td><b>Num</b>".$tabla['Numero']."</td></tr>";
  19.       echo "<tr><td><b>Can</b>".$tabla['cantidad']."</td></tr>";
  20.   }while($tabla=mysql_fetch_array($resultado));
  21.   echo "</table>";
  22. }
  23. else{
  24. echo "No se han encontrado resultados en la busqueda";
  25. }
  26. mysql_close($conexion);
  27. ?>

la linea de error es la siguiente:
Cita:
}while($tabla=mysql_fetch_array($resultado));

Última edición por shagguy; 12/08/2009 a las 09:03
  #7 (permalink)  
Antiguo 12/08/2009, 09:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ayuda con buscador :S

Cambia la linea 7:
Código PHP:
Ver original
  1. $resultado=mysql_query($sql,$conexion) or die( mysql_error() );

Saludos.
  #8 (permalink)  
Antiguo 12/08/2009, 09:14
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

ahora salio esto

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE Tic='%3%' AND Lots=''%3%' AND Num='%3%'' at line 1
  #9 (permalink)  
Antiguo 12/08/2009, 09:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con buscador :S

¿Tienes declarado correctamente todas las columnas, o sea existe una columna llamada Tic, Lots, Num?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 12/08/2009, 09:24
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

listo amigo ya lo hice funcionar... gracias por la ayuda ^^

me funciono con esta linea:

Cita:
$sql = "SELECT * FROM lots WHERE lots like '%$buscar%' ORDER BY num";
  #11 (permalink)  
Antiguo 12/08/2009, 09:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ayuda con buscador :S

Imprime tu query, al parecer tienes algo mal ya que esta mal formulada.

Saludos.
  #12 (permalink)  
Antiguo 12/08/2009, 09:52
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

oigan amigo otra pregunta.

me gustaria saber como puedo hacer para crear una linea tipo total que me sume todos los cantidad que hallan en el tic... es el mismo formulario anterior.
  #13 (permalink)  
Antiguo 12/08/2009, 09:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con buscador :S

Puedes hacerlo en el mismo query
Código php:
Ver original
  1. $query = mysql_query("SELECT sum(Tic) as Tic FROM tabla");
  2. $row = mysql_fetch_assoc($query);
  3. echo $row["Tic"];
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 12/08/2009, 10:12
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

lo coloque asi amigo y me funciono pero suma todos los numeros que hallan en cantidad, solo necesito que sume los de el numero seleccionado (tic) osea si colocan 5 solamente sume los campos en los que tic sea igual a 5

Cita:
$query = mysql_query("SELECT sum(Cantidad) as Tic FROM lots") or die( mysql_error() );
$row = mysql_fetch_assoc($query);
echo $row["Tic"];
  #15 (permalink)  
Antiguo 12/08/2009, 10:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con buscador :S

puedes hacerlo con el WHERE
Código php:
Ver original
  1. $query = mysql_query("SELECT sum(Tic) as Tic FROM tabla WHERE Cantidad = 5");
  2. $row = mysql_fetch_assoc($query);
  3. echo $row["Tic"];

Te sugiero que estudies como hacer querys
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 12/08/2009, 10:20
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

claro esta bien, pero el problema es que ese numero nunca se repite es un ejemplo.


el numero puede variar para eso se encuentra la sentencia '%$buscar%' arriba esta todo mi formulario mas o menos para que lo entiendas xD
  #17 (permalink)  
Antiguo 12/08/2009, 10:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con buscador :S

Claro, entiendo, pero lo que te di es un ejemplo, usalo como tu quieres el WHERE, con el like puedes hacerlo, pero el problema del like como tu lo usas va a buscar todas las veces que aparece 5 en la columna. Me refiero vamos a suponer que en la variable $buscar escribiste 5 y que quieres buscar todos los que sean 5 solamente por lo tanto si existe en la columna valores como

55
5
53
35
95

te va a sumar todos los que te mencione a causa del % que declaraste antes y despues. Por lo tanto si quieres 5 solamente debes usar WHERE Cantidad = $buscar
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #18 (permalink)  
Antiguo 12/08/2009, 10:43
 
Fecha de Ingreso: julio-2009
Mensajes: 37
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con buscador :S

ok esta bien, listo ya lo hice funcionar jeje y gracias por el consejo me salvaste de un super error ^^ :D

el problema es que tenias algunas cosas mal ubicadas pero ya funciono sin problema xD ( bueno mas que todo los nombres pq estaban invertidos me parecio ) gracias men
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 19:14.