Foros del Web » Programando para Internet » PHP »

datos de la bd repetidos

Estas en el tema de datos de la bd repetidos en el foro de PHP en Foros del Web. Hola a todos, como estan? tengo una tabla con los campos id autoincremental cancion varchar(255) por ejemplo 1 chayanne solo traigo mi ritmo 2 thalia ...
  #1 (permalink)  
Antiguo 26/01/2008, 09:30
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
datos de la bd repetidos

Hola a todos, como estan?

tengo una tabla

con los campos

id autoincremental
cancion varchar(255)

por ejemplo

1 chayanne solo traigo mi ritmo
2 thalia enseñame
3 chayanne lo dejaria todo
4 shakira estoy aqui
5 thalia de donde soy
5 shakira donde estas corazon

la pregunta como puedo hacer para que me de el nombre del artista y cuantas canciones tiene cada uno?

el artista del nombre del tema esta separado por dos espacios o sea chayanne__solo traigo mi ritmo
entienden ???

separar eso ya lo hice pero como hago para que no me muestre cuando hago la consulta no me muestre

chayanne
chayanne
thalia
thalia
shakira
shakira

y me muestre

chayanne (2)
Thalia (2)
shakira (2)


espero alguna ayuda muchisimas gracias

saludos
__________________
DJJJ
  #2 (permalink)  
Antiguo 26/01/2008, 10:11
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: datos de la bd repetidos

SELECT count(DISTINCT artista) FROM tabla WHERE condicion

(o algo asi)
__________________
Salu2!
  #3 (permalink)  
Antiguo 26/01/2008, 10:56
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: datos de la bd repetidos

hola, creo que lo mejor es hacer dos tablas, una artisas y la otra canciones, y relacionarlas, asi seria mucho mas facil a la hora de contar las canciones de cada artista, con una simple consulta y usando mysql_num_rows.

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 26/01/2008, 11:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: datos de la bd repetidos

rogertm: a mi nunca me funcionó mysql_num_rows, asi que siempre creo una variable en MySQL y la leo luego.
__________________
Salu2!
  #5 (permalink)  
Antiguo 26/01/2008, 11:06
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: datos de la bd repetidos

bueno, cualquier medio es valido para llegar a buen fin.

saludetes
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 26/01/2008, 11:31
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: datos de la bd repetidos

la consulta con select distinct no me sale

algun ejemplo, para ver ?

$res = mysql_query("select distinct cancion FROM musica");

y no me devulve resultados,

con respecto a que es mejor poner un campo artista si esta bueno,

pero como puedo agregar a una tabla que tiene 3000 artistas?

abria algun codigo para que lo haga automatico

el artista del nombre del tema esta separado por dos espacios o sea chayanne__solo traigo mi ritmo


yo usando esto puedo sacar el artista

Código PHP:
<?php
$mi_cadena 
'THALIA  Piel Morena';
$caracter   '  ';
$posicion strpos($mi_cadena$caracter);
echo 
"$posicion <br><br>" ;
echo 
substr($mi_cadena0$posicion);
?>
me devuelve el artista

pero como podria hacer para que me lea todos los artista de la tabla

y me creara un campo automatico

no se si me entiende

saludos
__________________
DJJJ
  #7 (permalink)  
Antiguo 26/01/2008, 12:18
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: datos de la bd repetidos

rogertm

tu como lo harias

Cita:
hola, creo que lo mejor es hacer dos tablas, una artisas y la otra canciones, y relacionarlas, asi seria mucho mas facil a la hora de contar las canciones de cada artista, con una simple consulta y usando mysql_num_rows.
como la relacionas ???
__________________
DJJJ
  #8 (permalink)  
Antiguo 26/01/2008, 12:25
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: datos de la bd repetidos

lo que digo es sencillo, haces un par de tablas:

tabla Artistas
-----------------------
artista_ID
artistaNombre
-----------------------

tabla Canciones
-----------------------
cancion_ID
cancionTitulo
cancionArtistaID
-----------------------

relacionas los campos artista_ID y cancionArtistaID, te quedaria una relacion uno (artista) a varios (canciones), asi, sera mas facil hacer una consulta usando COUNT de MySQL

saludos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #9 (permalink)  
Antiguo 26/01/2008, 12:31
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: datos de la bd repetidos

me retracto, mientras escribia el mensaje anterior, me di cuenta que aqui no funciona myslq_num_rows, rectificar es de sabios, jejejeje

saludos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 26/01/2008, 13:12
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: datos de la bd repetidos

como no te endiendo a donde no funciona

Cita:
me retracto, mientras escribia el mensaje anterior, me di cuenta que aqui no funciona myslq_num_rows, rectificar es de sabios, jejejeje

saludos
y con el post anterior disculpa que te moleste puedes poner un ejemplo?

otra pregunta leyendo y lenyendo encontre esto que opinan ??

Código PHP:
select artista ,count(distinct tituloFROM tabla group by artista 
lo probe y me funciona bien, pero quiero saber como dices de relacionar la tablas me pudes poner un ejemplo ???

Código PHP:
tabla Artistas
-----------------------
artista_ID
artistaNombre
-----------------------

tabla Canciones
-----------------------
cancion_ID
cancionTitulo
cancionArtistaID
----------------------- 
__________________
DJJJ
  #11 (permalink)  
Antiguo 26/01/2008, 13:28
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Re: datos de la bd repetidos

en cuanto a mysql_num_rows, debes leerte la documentacion en el link que te di desde mi primer mensaje, asi entenderas para que se usa.
por otra parte, si en tu BD usas motor InnoDB, puedes leerte este articulo que explica detalladamente como hacer tablas relacionales:
http://www.mysql-hispano.org/page.php?id=27&pag=1
pero si usas MyISAM, la relacion la debes hacer ya desde php, a la hora de insertar una cancion, por ejemplo, le asignas mediante un select, en el cual recojes por una consulta previa, los nombres de los artisas y su ID, asi, en el momento que la cancion sea guardada en la BD tendra registrado el ID del artista en el campo cancionArtistaID.
perdon si no te paso ningun trozo de codigo ahora, es que me tengo que ir, pero te invito a que busques por el foro, yo mismo he puesto varios ejemplos de como hacer eso, y no le cojas miedo, es realmente facil, si no, pues el lunes estare por aqui, como todos los dias

saludos y suerte

pero insisto, investiga
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #12 (permalink)  
Antiguo 26/01/2008, 14:35
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: datos de la bd repetidos

no soporte InnoDB, como se activa innodb?
__________________
DJJJ
  #13 (permalink)  
Antiguo 26/01/2008, 15:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: datos de la bd repetidos

bueno ya lei como se activa

Si deseamos crear tablas de tipo InnoDB en mysql, debemos editar el archivo
/etc/mysql/my.cnf y comentar la línea : skip-innodb.
Las tablas de tipo InnoDB en MySQL, nos permiten crear claves foráneas con las que podemos relacionar tablas y actualizar y eliminar registros en cascada.
__________________
DJJJ
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 00:30.