Mam metodę w klasie która wyciąga dane z tablicy a następnie zwraca całą tablicę:
Kod
public function wszystkie_logowania($db_sql, $db_uchwyt, $fetch, $u_id)
{
$this->db_sql = $db_sql;
$this->db_uchwyt = $db_uchwyt;
$this->fetch = $fetch;
$this->limit = $limit;
$db_sql = "SELECT * FROM online_logs WHERE u_id = '$u_id' ORDER BY logs_data DESC LIMIT 30";
$db_uchwyt = $this->query($db_sql);
$fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)
return $fetch;
}
{
$this->db_sql = $db_sql;
$this->db_uchwyt = $db_uchwyt;
$this->fetch = $fetch;
$this->limit = $limit;
$db_sql = "SELECT * FROM online_logs WHERE u_id = '$u_id' ORDER BY logs_data DESC LIMIT 30";
$db_uchwyt = $this->query($db_sql);
$fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)
return $fetch;
}
Następnie wywołuję ją po utworzeniu egzemplarza klasy i tablica jest zwracana poprawnie, ale niestety nie wiem jak wyświetlić jej całą zawartość. Jest to tablica asocjacyjna. O ile kod postaci:
Kod
public function wszystkie_logowania($db_sql, $db_uchwyt, $fetch, $u_id)
{
$this->db_sql = $db_sql;
$this->db_uchwyt = $db_uchwyt;
$this->fetch = $fetch;
$this->limit = $limit;
$db_sql = "SELECT * FROM online_logs WHERE u_id = '$u_id' ORDER BY logs_data DESC LIMIT 30";
$db_uchwyt = $this->query($db_sql);
while ($fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)) {
echo '<table>
<tr>
<td class="error">'.++$i.'.</td>
<td class="error3">'.$fetch['logs_data'].'</td>
<td class="error">z IP:</td>
<td class="error3">'.$fetch['logs_ip'].'</td>
</tr>
</table>';
}
{
$this->db_sql = $db_sql;
$this->db_uchwyt = $db_uchwyt;
$this->fetch = $fetch;
$this->limit = $limit;
$db_sql = "SELECT * FROM online_logs WHERE u_id = '$u_id' ORDER BY logs_data DESC LIMIT 30";
$db_uchwyt = $this->query($db_sql);
while ($fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)) {
echo '<table>
<tr>
<td class="error">'.++$i.'.</td>
<td class="error3">'.$fetch['logs_data'].'</td>
<td class="error">z IP:</td>
<td class="error3">'.$fetch['logs_ip'].'</td>
</tr>
</table>';
}
działa poprawnie, to jednak chciałbym takiego uniknąć i po prostu zwrócić tablicę a następnie w miejscu wywołania przeformatować ją po swojemu (klasa taka jest bardziej uniwersalna). Odwołuję się więc do tej metody:
Kod
$logi = $panel->wszystkie_logowania($db_sql, $db_uchwyt, $fetch, $u_id);
echo $logi;
echo $logi;
i jak się domyślacie w pierwszym przypadku gdzie w metodzie dałem pętle while wyświatla wszystko, ale druga wersja kodu gdzie zwraca tablice jako zmienna nie wiem jak sie do niej odwolac podczas wyświetlania np. w pętli while. Wewnątrz klasy gdzie wpisuję while ($fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)) {...} wszystko jest jasne, ale jak to samo zrobić gdy mam tylko zmienną tablicową $logi? Próbowałem także z foreach i list ale coś mi nie wychodzi. Bardzo proszę o waszą pomoc.