Foros del Web » Programando para Internet » PHP »

array a consulta

Estas en el tema de array a consulta en el foro de PHP en Foros del Web. Buenas Quiero sacar las categorias de una noticia separados por coma pero que la ultima no tenga coma, entonces estoy probando a hacer un array ...
  #1 (permalink)  
Antiguo 29/11/2012, 10:50
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
array a consulta

Buenas
Quiero sacar las categorias de una noticia separados por coma pero que la ultima no tenga coma, entonces estoy probando a hacer un array de la consulta para conseguirlo con un implode.


Si lo hago de esta forma consigo lo que busco y salen los valores array [0] =>, array [1];

Código PHP:
Ver original
  1. $notice = mysql_query("SELECT * FROM Categorias_noticia");
  2.  $numeros = mysql_num_rows($notice);
  3.  
  4. $categoria = array();
  5. while($registro = mysql_fetch_array($notice))
  6.       {
  7.         $id = $registro ['id']
  8.         $categoria[] = $registro['categoria'];
  9.  
  10. }
  11. $titulo = implode(",", $categoria);
  12. print_r ($categoria);
  13. ?>


Pero como no quiero mostrar todas sino las que pertenecen a una noticia tengo que hacer la consulta asi

Código PHP:
Ver original
  1. $notice = mysql_query("SELECT * FROM Categorias_noticia WHERE id=$numero_cat");

entonces me saca todo del array con array [0] => y el implode no me pone las comas.
¿Por que salen los datos a cero?, creo que es el motivo por el que el implode no me saca las comas
espero haberme explicado
haber si alguien puede orientar a como solucionarlo.gracias
  #2 (permalink)  
Antiguo 29/11/2012, 11:01
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: array a consulta

El codigo parece correcto, creo que tu problema esta con la query, podrias darnos el resultado que te da hacer estas query en el phpmyadmin o algun cliente mysql
"SELECT * FROM Categorias_noticia"
"SELECT * FROM Categorias_noticia WHERE id=$numero_cat"
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 29/11/2012, 11:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: array a consulta

Gracias h2swider

Para llegar hasta ahi primero hago una consulta a una tabla noticias que me saca la id de la noticia entonces dentro del while saco de una tabla intermedia el numero de las categorias a la que pertenecen esa noticia que es la variable $numero_cat entonces esta ultima consulta que es el codigo que he pegao esta dentro del while de la anterior para sacar los nombre de las categorias separados por coma para cuando haya mas de una categoria perteneciendo a la noticia.
  #4 (permalink)  
Antiguo 29/11/2012, 11:31
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: array a consulta

Por lo que veo estas cometiendo un error grave en tu planteo. Esta MAL que hagas consultas dentro de un while, en lugar de eso deberias hacer una unica consulta, que joinee los datos.

Te pido que nos pases las estructuras de las tablas que estas consultando asi podemos evaluar una solución.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 29/11/2012, 11:41
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: array a consulta

Tabla Noticias
id = id de la noticia


Tabla Intermedia_noticias_categorias
id no la necesito
id_noticia = la id que recojo de las noticias
n_categoria = el numero de la categoria para consultar a la tabla Categorias_noticia su nombre


Tabla Categorias_noticia
id = que es la que miro de la tabla intermedia para sacar su nombre
categoria_noticia = el nombre de la categoria que son las que quiero separar con comas

Gracias de nuevo, si seguramente esta mal planteado todo pero es como me he ido apañando
  #6 (permalink)  
Antiguo 29/11/2012, 12:28
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: array a consulta

Las tablas estan bien.

Intenta con algo asi y luego me dices.
(Te trae las noticias y sus categorias que tengan el n_categoria = $numero_cat )

Código MySQL:
Ver original
  1. Noticias n, intermedia_noticias_categorias inc, categorias_noticia cn
  2. WHERE n.id=inc.id_noticia
  3. and cn.id=inc.n_categoria
  4. and cn.n_categoria=$numero_cat
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 29/11/2012, 13:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: array a consulta

muchas gracias h2swider
ya esta funcionando ademas de esta forma me ahorro un lio de whiles

Etiquetas: mysql, registro
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 17:18.