Asignar valores a una matriz 2d

Estoy tratando de asignar valores de una base de datos a una matriz 2d, pero solo muestra los últimos iterms.

Aquí está el código:

while($row = mysql_fetch_array($results)){
$MyData = array( array("Focus Area", $row["FocusArea"]),
               array("Finding Title", $row["FindingTitle"]),
               array("Finding Detail", $row["FindindDetail"]) 
             ); 

}//End While

¿Qué estoy haciendo mal por favor ayuda?

preguntado el 27 de agosto de 11 a las 17:08

3 Respuestas

$MyData[] = $row;

seria suficiente

También sugiero crear una función, ya que obtener una matriz de db es una rutina muy común.
Entonces, podrá obtener sus datos en una línea,

$myData = getRows("SELECT * FROM table");

Respondido 27 ago 11, 21:08

aah @Col. Te veo después de tanto tiempo :), +1 por recomendar una mejor solución. lo único que no me gusta de la consulta es que ha utilizado * que se considera una mala práctica - Ibrahim Azhar Armar

$myData = array();
while($row = mysql_fetch_array($results)){
$MyData[] = array( array("Focus Area", $row["FocusArea"]),
               array("Finding Title", $row["FindingTitle"]),
               array("Finding Detail", $row["FindindDetail"]) 
             ); 

}//End While

esto hará el truco

Respondido 27 ago 11, 22:08

siempre es mejor declarar el tipo de datos que va a utilizar. así que inicialmente debería ser $myData = array() en lugar de simplemente declararlo. - Ibrahim Azhar Armar

Está declarando una nueva matriz cada vez que se ejecuta el ciclo. Declararlo fuera del ciclo while y agregar los nuevos valores.

$MyData = array();
while($row = mysql_fetch_array($results)){
$MyData[] = array( array("Focus Area", $row["FocusArea"]),
               array("Finding Title", $row["FindingTitle"]),
               array("Finding Detail", $row["FindindDetail"]) 
             ); 

}//End While

Respondido 27 ago 11, 22:08

La . in $MyData[] .= se usa para la concatenación de cadenas, por lo que es incorrecto usarlo aquí (la matriz se convertirá en una cadena ...) - KillerX

no deberías estar usando .= para una matriz. - Ibrahim Azhar Armar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.