Foros del Web » Creando para Internet » Herramientas y Software »

problemas para una busqueda en base de datos

Estas en el tema de problemas para una busqueda en base de datos en el foro de Herramientas y Software en Foros del Web. Hola amigos foreros !!! estoy empezando con el dreamweaver y las paginas dinamicas Estoy haciendo una web que me trae loco, tengo una base de ...
  #1 (permalink)  
Antiguo 13/04/2010, 13:36
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 0
problemas para una busqueda en base de datos

Hola amigos foreros !!!
estoy empezando con el dreamweaver y las paginas dinamicas

Estoy haciendo una web que me trae loco, tengo una base de datos con artistas... por ejemplo acdc, y en uno de los campos de la tabla tengo el dato letra_artista : "a" (por decir una)

pues lo que quiero es poner un abecedario que al pulsar sobre cualquiera de las letras me de como resultado todas las entradas que tengan el campo como "a" (por ejemplo) , y me tiene que salir todos los que tienen el campo "a", como: "acdc", "amaral" etc..

Me podeis decir como lo tengo que hacer con dreamweraver.

Gracias de antemano a todos
  #2 (permalink)  
Antiguo 13/04/2010, 17:35
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: problemas para una busqueda en base de datos

No necesitas tener un campo para eso. Solo necesitas hacer el abecedario en html haces un enlace que te con el cual envías la variable de esa letra, por ejemplo:

Código HTML:
Ver original
  1. <a href="paginao.php?letra=a">a</a>

en 'paginao.php' recibes la variable:

y haces una consulta de todas las bandas que empiecen con la letra que recibes como explico aquí:

http://www.forosdelweb.com/f17/por-f...riable-455687/

Pero para la variable usas URL Parameter y en el valor usas 'letra' (en este caso) y en vez de igual (=) escoges "que empiece por" en el filtro. El resultado de ese recorset serán records que empieza con la letra a.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #3 (permalink)  
Antiguo 18/04/2010, 14:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problemas para una busqueda en base de datos

Ups !!!, perdón por tardar en contestar pero estaba muy liado y no me conectaba.

Ok juaniquillo, perfecto me ha ha funciona muy bien, muchisimas gracias por ayudarme,

Ahora se me plantea otro problema, solucionado el problema de buscar por letras, tanto por grupo como por canción, ahora quiero hacer un buscador con un capo de texto y dos radio botones para determinar si la busqueda es por grupo o cancion mas o menos asi:

<form id="form1" name="form1" method="get" action="/pdf_drum/res_ultados.php">
<label> Introduce una busqueda
<input type="text" name="buscar" id="buscar" />
<input type="submit" name="button2" id="button" value="Enviar" />
</label>
<label>
<input type="radio" name="radio" id="porgrupo" value="porgrupo" />
</label>
<label>Grupo</label>
<label>
<input type="radio" name="radio" id="porcancion" value="porcancion" />
</label>
<label>Canción</label>
</form>

Y el problema es que no se como filtrar para que según que radio boton este pulsado haga la busqueda en el campo grupos o en el campo canciones.

Gracias
  #4 (permalink)  
Antiguo 19/04/2010, 06:38
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: problemas para una busqueda en base de datos

Puedes usar el radiobutton como condicional. Haces esto, recibes la variable del radiobutton:

Código PHP:
Ver original
  1. $radio = $_GET['radio'];
  2.  
  3. if(!empty($radio) && $radio == 'porgrupo'){
  4.     //aquí escribes el codigo de por grupo
  5. }
  6. elseif(!empty($radio) && $radio == 'porcancion'){
  7.     //aquí escribes el codigo de por cancion
  8. }
  9. else{
  10.     echo 'favor de escoger un genero';
  11. }
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #5 (permalink)  
Antiguo 19/04/2010, 11:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problemas para una busqueda en base de datos

Ok, Juanquillo, muchas gracias, ya estoy probando a ver que tal,.... de momento me da una noticia de:

Notice: Undefined index: radio in C:\Archivos de programa\wamp\www\pdf_drum\res_ultats_bucar.php on line 36

de esta linea,

line 36: $radio = $_GET['radio'];

Estoy mirando a ver si lo soluciono .......

(se acepta una opinion de un maestro, jejej...)

Gracias por ayudarme, eres un crack, (no como yo... que soy un p. aprendiz por cuenta propia)
  #6 (permalink)  
Antiguo 19/04/2010, 19:01
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: problemas para una busqueda en base de datos

El "Notice" te aparece porque debes tener el "error_reporting" en tu PHP.INI de esta forma:

Código:
error_reporting = E_ALL
Lo que es algo muy bueno en tu ambiente de desarrollo, pero es algo que debes cambiar en tu servidor de producción. La verdad es que es yo no lo tengo así así que no recibo ningún notice, pero lo puedes arreglar fácilmente verificando si el $_GET existe:

Código PHP:
Ver original
  1. if(isset($_GET["radio"])){
  2.  
  3. //todo el codogp
  4.  
  5. }
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #7 (permalink)  
Antiguo 21/04/2010, 17:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problemas para una busqueda en base de datos

Gracias juaniquillo, estoy probando.... (aunque con dificultades), gracias.
  #8 (permalink)  
Antiguo 09/05/2010, 14:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problemas para una busqueda en base de datos

Gracias Juaniquillo, el "if / elseif ", que me dijiste para los radio-botones funciona bien, pero ahora el siguiente problema es que solo puedo hacer una repeticion de región, o por grupo o por canción, y en la tabla tengo los dos juegos de registro que se tendrian que repetir, verás tengo la tabla asi:

<?php do { ?>

<tr>
<td><?php echo $row_cancion['artista']; ?><?php echo $row_grupo['artista']; ?></td>
<td><?php echo $row_cancion['cancion']; ?><?php echo $row_grupo['cancion']; ?></td>
<td ><a href="<?php echo $row_grupo['url_partitura']; ?>"></a><a href="<?php echo $row_grupo['url_partitura']; ?>#"><img src="fotos/ico_044.png" /></a></td>
</tr>

<?php } while ($row_grupo = mysql_fetch_assoc($grupo)); ?>

Esto seria con un repetir región del juego de registros "grupo"

Pero tambien necesito hacer una repetición del juego de registros "cancion"
que seria:

<?php do { ?>
( .... la tabla....)
<?php } while ($row_cancion= mysql_fetch_assoc($cancion)); ?>

Y hacer que hayan dos comportamientos no lo consigo, ya que en el loop " do / while " no se como dercirselo, sabrias como hacerlo???

espero haberme explicado mas o menos bien...

Gracias
  #9 (permalink)  
Antiguo 10/05/2010, 19:25
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: problemas para una busqueda en base de datos

¿A ver si entiendo. Quieres listar todas las canciones de un grupo dentro del loop de grupos? DW no te permite hacer dos do.. while uno dentro de otro, o "nested". Es algo que no entiendo porqué, pero bueno. Puedes hacer un while() donde listas todas las canciones, pero eso puede que rompa la funcionalidad de DW, osea, que no podrás controlar las variables usando el panel de Aplicaciones. Si eso es lo que quieres puedes hacer esto:


Código PHP:
Ver original
  1. <table>
  2.   <?php do { ?>
  3.     <tr>
  4.       <td><?php echo $row_cancion['artista']; ?><?php echo $row_grupo['artista']; ?></td>
  5.       <td><?php echo $row_cancion['cancion']; ?><?php echo $row_grupo['cancion']; ?></td>
  6.       <td ><a href="<?php echo $row_grupo['url_partitura']; ?>"></a><a href="<?php echo $row_grupo['url_partitura']; ?>#"><img src="fotos/ico_044.png" /></a></td>
  7.       <td>Canciones
  8.         <?php while($row_cancion= mysql_fetch_assoc($cancion)){
  9.   $row_cancion['nombre_de_la_columna_de_tu_tabla_de_canciones'];
  10.   ?>
  11.         <br />
  12.         <?php }?>
  13.       </td>
  14.     </tr>
  15.     <?php } while ($row_grupo = mysql_fetch_assoc($grupo)); ?>
  16. </table>


Cambia lo de "nombre_de_la_columna_de_tu_tabla_de_canciones " por el nombre de la columna de la tabla de canciones que quieras enseñar. Dime si eso te sirve.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #10 (permalink)  
Antiguo 12/05/2010, 16:02
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problemas para una busqueda en base de datos

Hola, creo que no me explico bien, en la tabla tengo dos juegos de registro a mostrar, por si la busqueda viene por grupos o por canciones, (de los radio-botones), con el codigo que tu me dijiste, que es este:
Código PHP:
      $radio $_GET['radio'];
      if(!empty(
$radio) && $radio == 'porgrupo'){
          
//aquí escribes el codigo de por grupo}
      
elseif(!empty($radio) && $radio == 'porcancion'){
          
//aquí escribes el codigo de por cancion}
      
else{echo 'favor de escoger un genero';} 
en la tabla tengo este juego de registros (canciones)
Código PHP:
<?php echo $row_cancion['artista']; ?>
y este otro (grupos)
Código PHP:
<?php echo $row_grupo['artista']; ?>
los dos en la misma celda para que dependiendo del radio-botón se mostrará uno o otro


pero lo que no puedo hacer es la repetición de registros de los dos, cuando le digo a la tabla que me repita las celdas que tienen los registros solo puedo decirle que repita un juego de registros por ejemplo que repita el juego de registros canción (por ejemplo)
Código PHP:
 <?php do { ?>
$row_cancion['artista']
<?php } while ($row_cancionmysql_fetch_assoc($cancion)); ?>  (esto solo es una muestra)
pero tambien tengo en la misma tabla
Código PHP:
 $row_grupo['artista']; 
que no se me repite y si le pongo otro "do... while" no me lo acepta

Código PHP:
<?php do { ?>
 <?php do { ?>
<tr>
<td><?php echo $row_cancion['artista']; ?><?php echo $row_grupo['artista']; ?></td>
<td><?php echo $row_cancion['cancion']; ?><?php echo $row_grupo['cancion']; ?></td>
<td ><a href="<?php echo $row_grupo['url_partitura']; ?>"></a><a href="<?php echo $row_grupo['url_partitura']; ?>#"><img src="fotos/ico_044.png" /></a></td>
</tr>
#
<?php } while ($row_grupo mysql_fetch_assoc($grupo)); ?>
<?php 
} while ($row_cancionmysql_fetch_assoc($cancion)); ?>
esto ya se que esta mal, pero lo pongo asi para intentar explicarme, porque con un solo "do..while", si que me hace las repeticiones para un registro, por ejemplo grupos,
pero no hace las repeticiones para canciones....
es como si tuviera que tener dos "do .... while" para funcionar, pero con dos no funciona....

Y los mensajes que me salen cuando le pido los resultados del loop que no esta definido son:
Notice: Undefined variable: cancion in C:\Archivos de programa\wamp\www\pdf_drum\res_ultats_bucar.php on line 293

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in C:\Archivos de programa\wamp\www\pdf_drum\res_ultats_bucar.php on line 293


y dicha linea es:
Código PHP:
<?php } while ($row_cancion mysql_fetch_assoc($cancion));  ?>

Gracias, y otra vez no se si me explico, pero gracias por intentar entenderme.
  #11 (permalink)  
Antiguo 12/05/2010, 17:48
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: problemas para una busqueda en base de datos

A ver.. hay algo que no entiendo. Si lo que quieres es mostrar una cosa o la otra
necesitas usar una condicional (if) y dependiendo del valor del radio button muestras uno o el otro, por ejemplo:

Código PHP:
Ver original
  1. <?php if($radio == 'porgrupo'){
  2.      do { ?>
  3.     <tr>
  4.     <td><?php echo $row_cancion['artista']; ?><?php echo $row_grupo['artista']; ?></td>
  5.     </tr>
  6.     #
  7.     <?php } while ($row_grupo = mysql_fetch_assoc($grupo));
  8. }
  9. elseif($radio == 'porcancion'){
  10.     do { ?>
  11.     <tr>
  12.     <td><?php echo $row_cancion['cancion']; ?><?php echo $row_grupo['cancion']; ?></td>
  13.     </tr>
  14.     #
  15.     <?php } while ($row_cancion= mysql_fetch_assoc($cancion));
  16. } ?>


Lo que no entiendo es de donde sacas '$row_grupo['url_partitura']'. Si me haces un bosquejo de lo que quieres hacer puede que haya una mejor forma. Ya se que estás buscando por letras pero, ¿qué exactamente quieres mostrar y en cuáles tablas de las bases de datos está la información?
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Etiquetas: editores-web, busquedas
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 16:04.