Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Arrays asociativos

Estas en el tema de Arrays asociativos en el foro de PHP en Foros del Web. Hola a todos... Estoy un poco torpe hoy y no se como hacer lo que quiero.... Necesito sacar de una base de datos de un ...
  #1 (permalink)  
Antiguo 24/02/2020, 14:05
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 281
Antigüedad: 10 años, 7 meses
Puntos: 10
Arrays asociativos

Hola a todos...
Estoy un poco torpe hoy y no se como hacer lo que quiero....
Necesito sacar de una base de datos de un blog todos los articulos de un autor en concreto. La consulta es la siguiente
Código PHP:
SELECT    
    id
,
    
title,
    
content,
    
photo
FROM
    articles
WHERE
    user_id 
$authorid
AND 
    
approved 
Y se almacena en una variable $articulos. de tal forma que para acceder a cada elemento de cada articulo sería así: $articulo[3]['title']

Hasta ahí bien....
Pero ahora estoy creando una clase intermedia (un controlador) que quiero que me prepare todos los datos de la variable $articulos para que los deje listos para la vista.

Lo que necesito es crear otro array en la clase controlador que tenga todos los articulos con todos sus campos, pero modificados. Por ejemplo, la consulta me devuelve en todos los articulos el numero de la foto (1452.jpg por ejemplo) y yo lo que necesito es que la clase controlador me coja los datos devueltos de la consulta y me los inserte en otro array para devolver a la vista pero en vez de tener 1452.jpg con "/img/articles/1452.jpg"

He intentado esto pero no me esta funcionando:

Código PHP:
$respuestas ModeloArticulos::mdlGetArticlesByAuthorId($authorId);

        
$datos = array();
        
$i 0;
        foreach (
$respuestas as $respuesta) {
            
$datos[$i] =
                array( 

                    
'articleId' => $respuesta["id"],
                    
'title' => $respuesta["title"],
                    
'content' => $respuesta["content"],
                    
'photo_url' => $respuesta["photo"]
                )
                
$i++;

        }

        return 
$datos
Que estoy haciendo mal?

Gracias!
__________________
Tecnología y tutoriales
  #2 (permalink)  
Antiguo 24/02/2020, 14:52
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 281
Antigüedad: 10 años, 7 meses
Puntos: 10
Respuesta: Arrays asociativos

Cita:
Iniciado por dryant Ver Mensaje
Hola a todos...
Estoy un poco torpe hoy y no se como hacer lo que quiero....
Necesito sacar de una base de datos de un blog todos los articulos de un autor en concreto. La consulta es la siguiente
Código PHP:
SELECT    
    id
,
    
title,
    
content,
    
photo
FROM
    articles
WHERE
    user_id 
$authorid
AND 
    
approved 
Y se almacena en una variable $articulos. de tal forma que para acceder a cada elemento de cada articulo sería así: $articulo[3]['title']

Hasta ahí bien....
Pero ahora estoy creando una clase intermedia (un controlador) que quiero que me prepare todos los datos de la variable $articulos para que los deje listos para la vista.

Lo que necesito es crear otro array en la clase controlador que tenga todos los articulos con todos sus campos, pero modificados. Por ejemplo, la consulta me devuelve en todos los articulos el numero de la foto (1452.jpg por ejemplo) y yo lo que necesito es que la clase controlador me coja los datos devueltos de la consulta y me los inserte en otro array para devolver a la vista pero en vez de tener 1452.jpg con "/img/articles/1452.jpg"

He intentado esto pero no me esta funcionando:

Código PHP:
$respuestas ModeloArticulos::mdlGetArticlesByAuthorId($authorId);

        
$datos = array();
        
$i 0;
        foreach (
$respuestas as $respuesta) {
            
$datos[$i] =
                array( 

                    
'articleId' => $respuesta["id"],
                    
'title' => $respuesta["title"],
                    
'content' => $respuesta["content"],
                    
'photo_url' => $respuesta["photo"]
                )
                
$i++;

        }

        return 
$datos
Que estoy haciendo mal?

Gracias!
Vale ya....

Si es que lo tiene estar todo el rato programando sin levantarse de la silla.... Ha sido levantarme y desconectar un rato y al ponerme de nuevo ya he visto donde estaba el error.
En foreach sobraba el array teniendo que quedar asi:

Código PHP:

foreach ($respuestas as $respuesta) {
            
$datos[$i] =
                [ 

                    
'articleId' => $respuesta["id"],
                    
'title' => $respuesta["title"],
                    
'content' => $respuesta["content"],
                    
'photo_url' => $respuesta["photo"]
                ];
                
$i++;

        } 
Total, que ya esta solucionado..
Gracias!
__________________
Tecnología y tutoriales
  #3 (permalink)  
Antiguo 24/02/2020, 14:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.032
Antigüedad: 11 años, 7 meses
Puntos: 2206
Respuesta: Arrays asociativos

No estás agregando la ruta:

Código PHP:
Ver original
  1. $respuestas = ModeloArticulos::mdlGetArticlesByAuthorId($authorId);
  2.        $ruta = 'img/articles/';
  3.  
  4.         $datos = array();
  5.         $i = 0;
  6.         foreach ($respuestas as $respuesta) {
  7.             $datos[$i] =
  8.                 array(
  9.  
  10.                     'articleId' => $respuesta["id"],
  11.                     'title' => $respuesta["title"],
  12.                     'content' => $respuesta["content"],
  13.                     // Solo concatena la ruta y listo!
  14.                     'photo_url' => $ruta . $respuesta["photo"]
  15.                 )
  16.                 $i++;
  17.  
  18.         }
  19.  
  20.         return $datos;
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 26/02/2020, 02:28
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 281
Antigüedad: 10 años, 7 meses
Puntos: 10
Respuesta: Arrays asociativos

Cita:
No estás agregando la ruta:
Cierto, se me pasó pero ya me di cuenta al probarlo después de haber escrito en el foro! Gracias!
__________________
Tecnología y tutoriales



La zona horaria es GMT -6. Ahora son las 11:19.