Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wyświetlenie danych z bazy w tabeli
Newbie()
post 4.02.2017, 21:14:05
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.03.2011

Ostrzeżenie: (0%)
-----


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ł

Ten post edytował Newbie() 4.02.2017, 21:15:20
Go to the top of the page
+Quote Post
Tomplus
post 4.02.2017, 22:00:43
Post #2





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Newbie()
post 4.02.2017, 22:30:17
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.03.2011

Ostrzeżenie: (0%)
-----


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ę,
Go to the top of the page
+Quote Post
Tomplus
post 4.02.2017, 22:39:24
Post #4





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Newbie()
post 4.02.2017, 22:40:30
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.03.2011

Ostrzeżenie: (0%)
-----


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%
Go to the top of the page
+Quote Post
Tomplus
post 4.02.2017, 22:52:27
Post #6





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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>";


Go to the top of the page
+Quote Post
Newbie()
post 4.02.2017, 23:00:09
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.03.2011

Ostrzeżenie: (0%)
-----


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ę.


Ten post edytował Newbie() 4.02.2017, 23:19:59
Go to the top of the page
+Quote Post
Tomplus
post 5.02.2017, 12:17:42
Post #8





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


No widzisz. Literówka. Największa zmora programistów.
Daj "lajka" jeżeli pomogłem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:16