Obviamente, está bien, la primera selección lo diferencia así que hay algo para aprender:
while($row2 = mysql_fetch_array($result))
{
...
}
está bien este aspecto parte, vamos a ver el interior del bucle:
$myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
Hay varios puntos. Probablemente lo más importante es que, como está dentro de un ciclo, sobrescribe $myarray
en cada iteración. Desea agregar a una matriz en su lugar. Vamos a hacer esto:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = $row2; # add the row
}
Después de que se puede dar salida a una prueba de que funciona básicamente:
var_dump($myarray);
que le muestra una matriz que contiene todas las filas. . A continuación, sólo tiene que cambiar la consulta de base de datos para que sólo devuelve los campos que le interesan
En caso de que no se puede hacer eso con la base de datos, se puede manipular la matriz, así:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = array(
"id" => $theid,
"name" => name($id),
"text" => $row2['text']
);
}
var_dump($myarray);
Ahora el resultado debería verse como lo desea. Para la salida $myarray
:
foreach ($myarray as $number => $row)
{
echo '<div>Number ', $number, ':<dl>';
foreach ($row as $k => $v)
{
printf("<dt>%s</dt><dd>%s</dd>\n", $k, htmlspecialchars($v));
}
echo '</dl></div>'
}
Tengo dos matrices y quiero ponerlas en una variable. Estoy usando esta línea de código $ finalarray = $ _SESSION ['SESS_ARRAY'] + $ myarray ;. Pero me devuelve un error fatal. ¿Me puedes ayudar? – anna
Lo he solucionado usando array_merge(). – anna