Foros del Web » Programando para Internet » PHP »

Consulta Sql

Estas en el tema de Consulta Sql en el foro de PHP en Foros del Web. Tengo una tabla a la que llamé musicales y tiene 4 campos (id_musical, desc_musical, grupo y anio). Realice un formulario que solo tiene un input ...
  #1 (permalink)  
Antiguo 25/10/2006, 05:20
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
Consulta Sql

Tengo una tabla a la que llamé musicales y tiene 4 campos (id_musical, desc_musical, grupo y anio).
Realice un formulario que solo tiene un input llamado buscar y el submit.
La idea es que al ingresar una palabra en el input, me tire como resultado las coincidencias encontradas en todos los campos de la tabla menos en el id.
El codigo que escibi es el siguiente:
Código PHP:
selectmusicales where desc_musicalgrupoanio '%buscar'
Está bien???? cuál es la manera????

Desde ya gracias....
  #2 (permalink)  
Antiguo 25/10/2006, 05:44
Avatar de izar  
Fecha de Ingreso: enero-2004
Mensajes: 519
Antigüedad: 20 años, 9 meses
Puntos: 1
Código PHP:
"select * from musicales where (desc_musical like'%" buscar "%'") or....
  #3 (permalink)  
Antiguo 25/10/2006, 06:40
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
Código PHP:
"select * from musicales where (desc_musical like'%" buscar "%'") or....
Despues de ese "or" van los campos donde yo quiero que busque????? encerrados entre parentesis????
  #4 (permalink)  
Antiguo 25/10/2006, 06:49
 
Fecha de Ingreso: agosto-2003
Mensajes: 68
Antigüedad: 21 años, 3 meses
Puntos: 0
Como lo indica izar debe usar LIKE en vez de = para que te funcione la busquede por palabra en la tabla, si no quiere que te salga determinado campo solo tiene que nombrar los campos que quiere donde tiene el *, separando cada campo por una coma..

Código PHP:
selectmusicales where desc_musicalgrupoanio '%buscar'
Te quedaria algo asi:
Código PHP:
select desc_musicalgrupoanio FROM musicales 
where desc_musical LIKE 
'%buscar' or  grupo LIKE '%buscar' or anio LIKE '%buscar' 
__________________
AdsParaTuWeb.com
  #5 (permalink)  
Antiguo 25/10/2006, 12:17
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
Consulta Sql Nuevo Intento

Les dejo el código completo para ver ya que todovia no logro realizar lo que quiero.

Código PHP:
<form method="POST" action="musicales.php">
       <table border="0" width="100%">
         <tr bgcolor="#006699">
           <td colspan="2"><div align="center" class="Estilo3">Buscar DVD Musical </div></td>
         </tr>
         <tr>
           <td width="31%">
             <p align="right">Buscar: </td>
           <td width="69%"><input type="text" name="buscar" size="32">
            <input type="submit" value="Enviar" name="envio"></td>
         </tr>
       </table>
     </form>
     <?
}

else

{
    
// Listamos los contactos
    
   // Armo la consulta
   
$sql "select desc_musical, grupo, anio FROM musicales ";  

   
           
   if (
$buscar != '')
    {
    
            
$sql .= " ( desc_musicales like '%$buscar%' or";
            
$sql .= " grupo like '%$buscar%' or ";
            
$sql .= " anio like '%$buscar%' ";
            
$sql .= " )";
    }

   
    
   
// Ordeno
   
$result mysql_query($sql$coneccion);
   
   if (
mysql_error())
    {
        echo 
"ERROR al buscar el titulo requerido - "mysql_errno().":"mysql_error()."<br>";
    }
    
    
   
// Calculo la cantidad de resultados
   
   
$cant_resultados mysql_num_rows($result);
   
   if (
$cant_resultados >= 1)
    {
    
       
// Muestro los resultados

     
echo "Se han encontrado $cant_resultados resultados<br>";
     
?>
     <table width="100%" border="0" align="center">
       <tr align="center" valign="middle" bgcolor="#006699">
         <th width="259" scope="col"><span class="Estilo7">GRUPO</span></th>
         <th width="291" scope="col"><span class="Estilo7">TITULO</span></th>
         <th width="86" scope="col"><span class="Estilo7">A&Ntilde;O</span></th>
        </tr>
     </table>
     <?
  
  
while($myrow mysql_fetch_array($result))
    {
?>
     <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
       <tr valign="middle">
         <td width="262" height="18" nowrap scope="col"><div align="left" class="Estilo2 Estilo8"> <? echo "$myrow[grupo]"?></div></td>
         <th nowrap scope="col"><span class="Estilo10"><? echo $myrow[desc_musical]; ?></span></th>
         <td width="92" nowrap scope="col"><div align="left" class="Estilo10"></div>
             <div align="center" class="Estilo10"><? echo $myrow[anio]; ?></div></td>
       </tr>
     </table>
     <?
    
// end while
    
  
}
  else
  {
      echo 
"No se han encontrado resultados coincidentes<br>";
  }
    

    
    
}



?>
  #6 (permalink)  
Antiguo 25/10/2006, 12:23
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 18 años, 4 meses
Puntos: 0
Olvidaste el WHERE en tu código.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #7 (permalink)  
Antiguo 25/10/2006, 12:35
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
soluciones

como lo termino????
te pido una mano. gracias
  #8 (permalink)  
Antiguo 25/10/2006, 12:52
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 18 años, 4 meses
Puntos: 0
Errr... ¿Has hecho un echo $sql a ver si esta bien construida la sentencia como tu crees? ¿Qué error SQL te da?

Saludos.

P.D.: Salgo del curro ya así q hasta mñn no podré mirarlo ya q en kasa me relajo. Espero q otro compañero pueda ayudarte.
__________________
La muerte es un camino que todos debemos recorrer...
  #9 (permalink)  
Antiguo 25/10/2006, 12:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola:

En una implementación que estoy haciendo realizo la búsqueda encadenando los campos de búsqueda:

select desc_musical, grupo, anio FROM musicales
where concat(desc_musical,'|',grupo,'|',anio) LIKE '%buscar'

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 25/10/2006, 12:59
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
ERROR al buscar el titulo requerido - 1064: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 '( desc_musicales like '%ww%' or grupo like '%ww%' or anio like

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\cinema\img_home\musicales.php on line 168
No se han encontrado resultados coincidentes
  #11 (permalink)  
Antiguo 26/10/2006, 02:21
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 18 años, 4 meses
Puntos: 0
El primer error indica q la sintaxis de la sentencia es incorrecta. Eso quiere decir q o bien el nombre de alguno de los campos en tu consulta no es válido o bien estás tratando una variable q no es tipo cadena como si lo fuera...

Prueba a quitar de la consulta alguno de los campos como por ejemplo la parte de anio like '%$buscar%' (lo kitas del select tambien x si akaso) a ver si es eso lo q provoca el error. Asegúrate q los campos tienen los nombres q utilizas.

El segundo error indica q el conjunto de resultados no es válido cosa lógica ya q la consulta está fallando.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
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 21:13.