Oczywiście, dobrze, najpierw odebrać go od siebie więc jest coś do nauczenia się:
while($row2 = mysql_fetch_array($result))
{
...
}
Wygląd tej części jest w porządku, zajrzyjmy do pętli:
$myarray = array("id"=>$theid, "name"=>name($id), "text"=>$row2[text]);
Istnieje wiele punktów. Prawdopodobnie najważniejsze jest to, że w pętli zastępujesz $myarray
w każdej iteracji. Zamiast tego chcesz dodać do tablicy. Zróbmy to:
$myarray = array(); # initialize the array first!
while($row2 = mysql_fetch_array($result))
{
$myarray[] = $row2; # add the row
}
Po tym można wyprowadzać go na dowód, że to w zasadzie działa:
var_dump($myarray);
który pokazuje tablicę, która zawiera wszystkie wiersze. . Następnie wystarczy zmienić zapytanie do bazy danych, tak że zwraca tylko pola, które Cię interesują
W przypadku, gdy nie można tego zrobić z bazą danych, można manipulować tablicę, a także:
$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);
Teraz wynik powinien wyglądać tak, jak chcesz. Aby wyprowadzić $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>'
}
Mam dwie tablice i chcę umieścić je w jednej zmiennej. Używam tego wiersza kodu $ finalarray = $ _SESSION ['SESS_ARRAY'] + $ myarray ;. Ale powraca do mnie fatalny błąd. Możesz mi pomóc? – anna
Rozwiązałem to za pomocą array_merge(). – anna