Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlenie danych z bazy w tabeli
Forum PHP.pl > Forum > Przedszkole
Newbie()
Witam mam problem z wrzuceniem danych do tabeli.

Jeżeli chcę po prostu wypisać dane na ekranie np poprzez echo lub printf to wszystko działa.

  1. $db = mysqli_connect("name", "user", "password", "db");
  2.  
  3. if (mysqli_connect_errno()) {
  4. printf("Nie udało się połączyć: %s\n", mysqli_connect_error());
  5. exit();
  6. }
  7.  
  8. $query = "SELECT id, name FROM table_name";
  9.  
  10. if ($result = mysqli_query($db, $query)) {
  11.  
  12. while ($row = mysqli_fetch_assoc($result)) {
  13. $html = $html.
  14. '<tr>
  15. <td>'.$row["id"].'</td>
  16. <td>'.$row["name"].'</td>
  17. </tr>';
  18. // printf ("%s (%s)\n", $row["id"], $row["name"]);
  19. }
  20.  
  21. return $html;
  22.  
  23. }


Potrzebuję robić to w ten sposób ponieważ jest to moduł/funkcja którą się dołącza do widoków w .html ( gdzie jest stworzona tabela z nazwami kolumn i trzeba ją wypełnić )

Co robię nie tak? Wygląda jakby return $html nie działał
Tomplus
Bo nie może działać.

return zwraca wartość funkcji, a ty nie tworzysz funkcji, dlatego należy użyć prostego: print $html, albo echo $html
Newbie()
Cytat(Tomplus @ 4.02.2017, 22:00:43 ) *
Bo nie może działać.

return zwraca wartość funkcji, a ty nie tworzysz funkcji, dlatego należy użyć prostego: print $html, albo echo $html


No właśnie dziwne bo robiłem podobnie do przykładu autora i on właśnie tak to zwraca.

No dobra ale mam html gdzie tworzę tą tabelkę i chcę wrzucić <td> do tego pliku to jak wydrukuje print $html; to po prostu mi się wyświetli ale nie tam gdzie chcę,
Tomplus
Nie wiem jak wygląda twój skrypt dalszy, ale jeżeli chcesz wkleić tam gdzie należy, to usuń print $html i dodaj zmienną $html tam gdzie chcesz np.

  1. <?php
  2. //skrypt drukujący wynik $html
  3. ?>
  4.  
  5. <body>
  6. <div>
  7. <table>
  8. <?= $html ?>
  9. </table>
  10. </div>
  11. </body>



i masz tam gdzie powinno.

Jak coś nie musisz pisać dwa razy $html.
Wystarczy:

  1. $html .= '<tr>
  2. <td>'.$row["id"].'</td>
  3. <td>'.$row["name"].'</td>
  4. </tr>';

Do zmiennej $html będą dodawać się kolejne rekordy pętli.

a można poznać ten przykład?
Newbie()
Cytat(Tomplus @ 4.02.2017, 22:39:24 ) *
Nie wiem jak wygląda twój skrypt dalszy, ale jeżeli chcesz wkleić tam gdzie należy, to usuń print $html i dodaj zmienną $html tam gdzie chcesz np.

  1. <?php
  2. //skrypt drukujący wynik $html
  3. ?>
  4.  
  5. <body>
  6. <div>
  7. <table>
  8. <?= $html ?>
  9. </table>
  10. </div>
  11. </body>



i masz tam gdzie powinno.

Jak coś nie musisz pisać dwa razy $html.
Wystarczy:

  1. $html .= '<tr>
  2. <td>'.$row["id"].'</td>
  3. <td>'.$row["name"].'</td>
  4. </tr>';

Do zmiennej $html będą dodawać się kolejne rekordy pętli.

a można poznać ten przykład?


Wygląda prawie tak samo w tym że w tabeli jest jeszcze avatar dodany.

Potem w html odwołujesz się do tego poprzez %nazwa_modulu%
Tomplus
To jeżeli tak to działa, to ten return jest wymagany, bo z tego skryptu, tworzy się ciało funkcji.

Więc mowisz że po za pętlą while:
echo $html; wyświetla treść, a
return $html; nie wyświetla treści tam gdzie powinno.

a return "<tr><td colspan='3'>TEST</td><tr>";


Newbie()
Cytat(Tomplus @ 4.02.2017, 22:52:27 ) *
To jeżeli tak to działa, to ten return jest wymagany, bo z tego skryptu, tworzy się ciało funkcji.

Więc mowisz że po za pętlą while:
echo $html; wyświetla treść, a
return $html; nie wyświetla treści tam gdzie powinno.

a return "<tr><td colspan='3'>TEST</td><tr>";


Już sprawdzam ale nawet w pętli działa wyświetlanie jeżeli wrzucę printa

-Edit2

Działa ten test, miałem literówkę.
Tomplus
No widzisz. Literówka. Największa zmora programistów.
Daj "lajka" jeżeli pomogłem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.