Foros del Web » Programando para Internet » PHP »

Consulta en MySQL: Obtener noticias añadidas por un usuario

Estas en el tema de Consulta en MySQL: Obtener noticias añadidas por un usuario en el foro de PHP en Foros del Web. Wenas a todos. Estoy atascado con una cosita. (Puede ser por las horas que son) Intento obtener los id de las noticias que ha añadido ...
  #1 (permalink)  
Antiguo 22/07/2008, 20:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Consulta en MySQL: Obtener noticias añadidas por un usuario

Wenas a todos. Estoy atascado con una cosita. (Puede ser por las horas que son) Intento obtener los id de las noticias que ha añadido un determinado usuario

Mi consulta es esta:

Cita:
$result=mysql_query( "select id_noticia from noticias where username='$username'");
Esto lo deberia guardar en un array y luego ir sacando esos id para mostrar los datos de esa noticia. He probado de varias maneras pero lo mas que he conseguido es que me muestre solo una.

Si alguien sabe como conseguirlo se lo agradeceria mucho.

Saludos. Muchas gracias.
  #2 (permalink)  
Antiguo 22/07/2008, 20:18
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

Emm... y de donde sacas las noticias?... de la misma tabla?...

Sacalas asi si es asi:
Código PHP:
"select * from noticias where username = '$username'" 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 22/07/2008, 20:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

Hola Marvin.

De esa manera obtengo los valores de todos los campos de la noticia que no es lo que busco y el caso es que solo me los da para el primer id_noticia que encuentra.

El problema es que para un usuario que por ejemplo ha añadido tres noticias con su nombre de usuario, cuando hago la consulta y lo saco solo aparece una de ellas

Pongo codigo para ver si veis que hago mal:

Código PHP:
  $noticias=obtener_id_noticias($nombre_usuario);//obtenemos los id_noticia para las noticias en una misma variable separada por ";"
  
$noticias_size=count($noticias);//Obtengo el tamańo del array

  //Funcion que extrae los nombres de esas asignaturas
  
for($contador=0;$contador<$noticias_size;$contador++)//muestro las asignaturas
  
{
    if (
$noticias[$contador]!="")
    {
      echo
"&nbsp;&nbsp;- ";
      
$noticia=recuperar_noticia($noticias[$contador]);
      
$titular_noticia=$noticia['titular'];
      echo 
$titular_noticia;
      echo
"<br /><br />";
    }
  } 
La funcion obtener id_noticia es de la siguiente manera:
Código PHP:
function obtener_id_noticias($username)
{
  if (!(
$conn db_conectar()))
    return 
false;

  
//Extrae los nombres de las asignaturas segun los codigos que recibe
  
$result=mysql_query("select id_noticia from noticias where username='$username'");

  
$noticias=mysql_fetch_array($result);
  
  return 
$noticias;

La funcion recuperar_noticia es:

Código PHP:
function recuperar_noticia($id_noticia)//Devuelve un array con los campos de la tabla stories para el id de la tabla especifica. Si no le pasamos ningun id el array no contendra ningun elemento y el formulario aparecera en blanco
{
  
$handle db_conectar();
  
$query "select * from noticias where id_noticia = '$id_noticia'";
  
$result mysql_query($query);
  return(
mysql_fetch_assoc($result));

Puede ser que algo pase con el mysql_fetch_array o con el count que no me dan nada mas que un registro.

A ver si damos con ello. Muchas gracias.
  #4 (permalink)  
Antiguo 22/07/2008, 20:53
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

Marvín tiene razón, piensa lo que él te dice.

Igualemente tu problema es el siguiente.
Está mal planteada tu función obtener_id_noticias()

Así debería quedar:

Código PHP:
function obtener_id_noticias($username)
{
  if (!(
$conn db_conectar()))
    return 
false;

  
//Extrae los nombres de las asignaturas segun los codigos que recibe
  
$result=mysql_query("select id_noticia from noticias where username='$username'");

$noticias = array();
  
 while(
$fila=mysql_fetch_array($result))
  {
    
$noticias[] = $fila;
  }
  
  return 
$noticias;

Te recomiendo que hagas 1 sola consulta, como te dijo Marvin.

Luego cuéntanos!

  #5 (permalink)  
Antiguo 22/07/2008, 21:11
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

Muchas gracias xbx
lo he intentado como dice Marvin pero no logro entender como voy a sacar con una unica consulta las distintas noticias introducidas por el mismo usuario ya que si no especifico id_noticia lo que obtengo son todos los campos de la noticia de ese usuario y en una sola noticia.

Con los cambios que me has propuesto ya se entera del numero de noticias que ha introducido ese usuario, pero a la hora de mostrar el contenido de ese array solo me muestra "array" para todas las posiciones de noticias[$contador] (en este caso son tres, para 0,1 y 2 muestra "Array")

Si tienes alguna idea de como hacer lo que dice marvin que no se me haya ocurrido te lo agradeceria y si ves alguna solucion a que me imprima "Array" en todas las posiciones la aplicare encantado.

Muchas gracias
  #6 (permalink)  
Antiguo 22/07/2008, 21:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

SOLUCIONADO!

El problema esta vez era que faltaba un pequeño detalle a la correccion de la funcion obtener_id_noticia(); y era que cuando le meto $fila a $noticias tiene que ser asi: $fila[0]; con lo que finalmente la funcion queda:

Código PHP:
function obtener_id_noticias($username)
{
  if (!(
$conn db_conectar()))
    return 
false;

  
//Extrae los nombres de las asignaturas segun los codigos que recibe
  
$result=mysql_query("select id_noticia from noticias where username='$username'");

  
$noticias = array();
 
  while(
$fila=mysql_fetch_array($result))
  {
    
$noticias[] = $fila[0];
  }
  
  return 
$noticias;

Muchas gracias a los dos por ayudarme a consguirlo. Sois unos fieras.
Saludoss.
  #7 (permalink)  
Antiguo 22/07/2008, 21:58
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

Claro... tambien toma en cuenta que con mysql_fetch_array() lo que llamas son arreglos por lo tanto puedes hacerlo asi tambien:
Código PHP:
$noticias[] = $fila['id_noticia']; 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #8 (permalink)  
Antiguo 23/07/2008, 05:13
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Consulta en MySQL: Obtener noticias añadidas por un usuario

Buenisimo

Me alegro que haya servido.


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 14:58.