Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Tworzenie tabeli z nagłówkami wierszy i kolumn z bazy MySql
mav666
post 10.02.2017, 20:44:34
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.03.2010

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


Witam!

Raczkuję w temacie i bardzo proszę o pomoc.
Wymyśliłem sobie projekt, w którym potrzebuję stworzyć tabelę HTML, z dynamicznie generowanymi nagłówkami wierszy i kolumn. Nagłówki mają być pobierane z bazy.
W polach tabeli powinny się pojawić textboxy.

  1. <table class="table">

  1. <?php
  2. $query = "SELECT * FROM db1";
  3. $select = mysqli_query($connection, $query);
  4.  
  5. $query1 = "SELECT * FROM db2";
  6. $select1 = mysqli_query($connection, $query1);
  7.  
  8. while($row = mysqli_fetch_assoc($select)) {
  9.  
  10. $id = $row['a_id'];
  11. $name = $row['name'];
  12.  
  13. echo '<tr>';
  14. echo '<th>'.$name.'</th>';
  15.  
  16. while($row = mysqli_fetch_assoc($select1)) {
  17.  
  18. $id1 = $row['b_id'];
  19. $name1 = $row['b_name'];
  20. echo '<th>'.$name1.'</th>';
  21.  
  22. }
  23.  
  24. echo '</tr>';
  25.  
  26. }
  27. ?>



To "coś" powyżej "coś" generuje. Pobiera dane z bazy i wyświetla w wierszach i kolumnach nagłówkowych. Ale...
1. Nagłówki kolumn są na poziomie pierwszego wiersza, a powinny być wyżej. Pierwsza lewa, górna komórka powinna być oczywiście pusta.
2. Nie wygląda to jak tabela, linie tabeli są tylko w pierwszej kolumnie
3. Nie wiem, jak i gdzie wstawić znaczniki <td></td> i jak wpakować w nie textboxy, do których można się będzie odwoływać...

Pomoże ktoś.
Jak z tego zrobić działającą procedurę?

Dziękuję i pozdrawiam,
Go to the top of the page
+Quote Post
woxala123
post 10.02.2017, 22:34:57
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


http://www.w3schools.com/php/showphpfile.a...o_db_select_pdo
Go to the top of the page
+Quote Post
mav666
post 10.02.2017, 22:41:36
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.03.2010

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


Dzięki, ale to, co jest w tym linku to dla mnie na razie czarna magia. To jest klasa i korzysta z PDO.
I na dodatek chyba tylko jedne nagłówki są brane z bazy.
Go to the top of the page
+Quote Post
woxala123
post 11.02.2017, 16:19:43
Post #4





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


To przejdź na PDO-daje dużo korzyści. A dużo nie trzeba by przerobic sobie kod. Ale jeszcze masz jednego linka który rozwiąże twój problem
http://stackoverflow.com/questions/4165195...et-column-names

Tu masz rozwiązanie moje jeśli chodzi o nagłówki z bazy danych. Tam gdzie masz xxx musisz wprowadzić swoje dane.i

  1.  
  2.  
  3. <html>
  4. <body>
  5. <table>
  6.  
  7. <tr>
  8. <th></th>
  9. <?php
  10.  
  11.  
  12. $servername = "localhost";
  13. $username = "root";
  14. $password = "xxx";
  15. $dbname = "xxx";
  16. $conn = new mysqli($servername, $username, $password, $dbname);
  17. // Check connection
  18. if (!$conn) {
  19. die("Connection failed: " . mysqli_connect_error());
  20. }
  21.  
  22. $query="SELECT column_name
  23. FROM information_schema.columns
  24. WHERE table_name=xxx'";
  25. $result = mysqli_query($conn, $query);
  26. echo "<table width=700 : border=1 :cellspacing=1: style='border: solid 1px black;'>";
  27.  
  28. $i = 0;
  29. while ($i < $row = mysqli_fetch_array($result)) {
  30.  
  31. echo '<td> '.$row[$i].'</td>';
  32.  
  33.  
  34. }
  35.  
  36. mysqli_free_result($result);
  37.  
  38. mysqli_close($conn);
  39.  
  40. echo "</table>";
  41.  
  42. ?>
  43.  
  44.  
  45.  


Ten post edytował woxala123 11.02.2017, 09:17:06
Go to the top of the page
+Quote Post
mav666
post 13.02.2017, 01:45:32
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.03.2010

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


Chociaż nie do końca o to mi chodziło to dzięki.

Już sobie poradziłem.

Pozdrawiam,
Go to the top of the page
+Quote Post
woxala123
post 13.02.2017, 12:00:55
Post #6





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


To pokaż rozwiązanie, o co Tobie chodziło?
Pozdrawiam
Go to the top of the page
+Quote Post
mav666
post 13.02.2017, 18:18:15
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.03.2010

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


Coś w tym stylu:

  1. $query1 = "SELECT * FROM table1";
  2. $select1 = mysqli_query($con, $query1);
  3. $colcount = mysqli_num_rows($select1);
  4.  
  5. $query = "SELECT * FROM table2";
  6. $select = mysqli_query($con, $query);
  7. $rowcount = mysqli_num_rows($select);
  8.  
  9.  
  10. $numrow = 1;
  11.  
  12. for($x = 1; $x <= $rowcount + 2; $x++) {
  13.  
  14. if($x == 1){
  15.  
  16. echo '<tr>';
  17. echo '<th></th>';
  18. echo '<th>Header 1</th>';
  19. while($row = mysqli_fetch_assoc($select1)) {
  20. $tbl_id1 = $row['tbl1_id'];
  21. $tbl_name1 = $row['tbl1_name'];
  22. echo '<th rowspan=2>'.$tbl_name1.'</th>';
  23. }
  24. echo '</tr>';
  25. echo '<tr>';
  26. echo '<th>Header 2</th>';
  27. echo '<th></th>';
  28. echo '</tr>';
  29. } else {
  30.  
  31. while($row = mysqli_fetch_assoc($select)) {
  32.  
  33. $tbl_id = $row['tbl_id'];
  34. $tbl_name = $row['tbl_name'];
  35.  
  36. echo '<tr>';
  37. echo '<td colspan=2>'. $tbl_name .'</td>';
  38. for($y = 1; $y <= $colcount; $y++) {
  39. $queryStr = 'SELECT * FROM matrix1 WHERE o_id = '.$numrow.' AND s_id = '.$y;
  40. $query = mysqli_query($con, $queryStr);
  41. $result = mysqli_fetch_assoc($query);
  42.  
  43. echo '<td><input type="checkbox" class="form-control" name=' . $numrow . '-' . $y . '>';
  44. }
  45. echo '</tr>';
  46. $numrow = $numrow + 1;
  47. }
  48. }
  49.  
  50. }
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: 25.04.2025 - 07:59