Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Generowanie tabeli z wpisanymi wynikami w odpowiednie miejsca
ghastblood
post 9.06.2012, 00:09:58
Post #1





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


Konstrukcja bazy danych jest następująca w konkurencjach zawodników mam godzinę oraz stanowisko
w ustawieniach pawilonu mam ilosc stanowisk w pawilonie

napisałem taki kodzik
  1. <?php
  2. include "core.php";
  3.  
  4. $sql_wynik = mysql_query("SELECT * FROM pawilony") or die(mysql_error());
  5. $sql_wynik1 = mysql_query("SELECT godzina FROM zawodnik LEFT JOIN konkurencje_zawodnikow ON id_zawodnika = id LEFT JOIN konkurencje ON id_konkurencji = id_konk") or die(mysql_error());
  6.  
  7. $sql_r = mysql_fetch_assoc($sql_wynik);
  8.  
  9.  
  10. while($sql_r1 = mysql_fetch_array($sql_wynik1,MYSQL_ASSOC)){
  11. $tab[] = $sql_r1;
  12. }
  13.  
  14. $stanowiska = $sql_r['ilosc_stanowisk'];
  15.  
  16. for($t=10; $t<=18; $t++){
  17. $godzina[] = $t;
  18. }
  19. echo '<pre>';
  20. var_dump($godzina);
  21.  
  22. echo '<table border="1">';
  23. echo '<tr>';
  24. echo '<td>Godz./Stanowisko</td>';
  25. for($s=1; $s<=$stanowiska; $s++){
  26. echo '<td>'.$s.'</td>';
  27. }
  28. echo '</tr><tr>';
  29. for($g = 10; $g<=18; $g++){
  30. $g = $g.'.00';
  31. echo '<td>'.$g.'</td>';
  32. for( $x = 0, $cnt = count($godzina); $x < $cnt; $x++ ){
  33. if($g == $godzina[$x]){
  34. $sql_wynik = mysql_query("SELECT * FROM zawodnik LEFT JOIN konkurencje_zawodnikow ON id_zawodnika = id
  35. LEFT JOIN konkurencje ON id_konkurencji = id_konk WHERE godzina = ".($g)." && pawilon = '25m'") or die(mysql_error());
  36. while($sql_r = mysql_fetch_assoc($sql_wynik)){
  37. echo '<td>'.$sql_r['nazwisko_zawodnika'].'</td>';
  38. }
  39. }
  40. }
  41.  
  42. echo '</tr><tr>';
  43. }
  44.  


generuje tabele dobrze ale zawodników wpisuje mi jak leci w konkretną godzinę a chciał bym osiągnąć efekt taki jak na obrazku czyli oprócz godziny dla zawodnika żeby był wpisany na odpowiednim stanowisku.


By ameth69 at 2012-06-08

Naprawdę nikt nie może mi pomóc ?


jestem bliżej niż dalej
  1. <?php
  2. include "core.php";
  3.  
  4. $sql_wynik = mysql_query("SELECT * FROM pawilony") or die(mysql_error());
  5. $sql_r = mysql_fetch_assoc($sql_wynik);
  6. $stanowiska = $sql_r['ilosc_stanowisk'];
  7.  
  8.  
  9.  
  10. echo '<table border="1">';
  11. echo '<tr>';
  12. echo '<td>Godz./Stanowisko</td>';
  13. for($s=1; $s<=7; $s++){
  14. $stanowisko[] = $s;
  15. echo '<td>'.$s.'</td>';
  16. }
  17. echo '</tr><tr>';
  18.  
  19.  
  20.  
  21. for($g = 10; $g<=16; $g++){
  22. $g = $g.'.00';
  23. echo '<td>'.$g.'</td>';
  24. $s = 1;
  25. for( $z = 0, $cnt = count($stanowisko); $z < $cnt; $z++ ){
  26. $sql_wynik1 = mysql_query("SELECT * FROM zawodnik LEFT JOIN konkurencje_zawodnikow ON id_zawodnika = id LEFT JOIN konkurencje ON id_konkurencji = id_konk WHERE pawilon = '25m' && godzina ='$g' && stanowisko = '$s'") or die(mysql_error());
  27. while($sql_r1 = mysql_fetch_assoc($sql_wynik1)){
  28. if($g == $sql_r1['godzina'] && $s == $sql_r1['stanowisko']){
  29. echo '<td>'.$sql_r1['nazwisko_zawodnika'].'</td>';
  30. } else{
  31. echo '<td>&nbsp;</td>';
  32. }
  33. }
  34. $s++;
  35.  
  36. }
  37. echo '</tr><tr>';
  38.  
  39. }
  40. echo '</table>';
  41.  
  42.  
  43. ?>


generuje mi to tabele wpisuje nazwiska ale if w pętli zawsze zwraca pierwszą wartość i nie tworzy mi pustych komórek przez co nazwisko zawodnika nie znajduje się na odpowiednim stanowisku.
może teraz ktoś mi pomoże siedzę nad tym cały dzień.
Go to the top of the page
+Quote Post
AdIoS_Neo
post 9.06.2012, 01:21:35
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

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


Witam,
linijka nr. 24
  1. $s = 1;
z każdym przejściem pętli zmienna $s która reprezentuje numer stanowiska ma przypisywaną wartość 1. Stąd cały czas pobierasz dane i wypisujesz tylko dla 1 stanowiska.
Go to the top of the page
+Quote Post
ghastblood
post 9.06.2012, 10:07:48
Post #3





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


oj niestety nie masz racji bo jest w pętli również $s++; po drugie wypisuj mi wszystkich zawodników. Chodzi mi o to że if zawsze zwraca
  1. if($g == $sql_r1['godzina'] && $s == $sql_r1['stanowisko']){
  2. echo '<td>'.$sql_r1['nazwisko_zawodnika'].'</td>';
  3. }


przez co zawodnicy nie są wpisani na odpowiednie stanowiska tylko w ciągu a powinno mi robić pusty rekord w tabeli jak dane stanowisko jest puste

[php][/php]if($g == $sql_r1['godzina'] && $s == $sql_r1['stanowisko']){
echo '<td>'.$sql_r1['nazwisko_zawodnika'].'</td>';
} else{
echo '<td>&nbsp;</td>}
';
Go to the top of the page
+Quote Post
kefirek
post 9.06.2012, 11:08:30
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Podaj strukturę tabel i przyładowane dane to postaram i się pomoc. Bo po tym kodzie co podałeś ciężka ogarnąć co gdzie jest a można zapewne to zrobić mniejszą liczbą zapytań.
Go to the top of the page
+Quote Post
ghastblood
post 9.06.2012, 11:38:24
Post #5





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


  1. <table border="1">
  2. <tr>
  3. <!-- Stały rekord tabeli -->
  4. <td>Godz./Stanowisko</td>
  5. <!-- Stanowiska generowane na podstawie wartości z MySQL -->
  6. <td>1</td>
  7. <td>2</td>
  8. <td>3</td>
  9. <td>4</td>
  10. <td>5</td>
  11. </tr><tr>
  12. <!-- Godzina 10.00 na podstawie wartości z MySQL gdzie podana jest godzina startu i konica czyli 10.00-15.00 -->
  13. <td>10.00</td>
  14. <!-- Zawodnik 1 to nazwisko imie i konkurencja zawodnik w bazie danych ma określone że odbywa konkurencje o godz 10.00 na stanowisku 1 -->
  15. <td>Zawodnik 1</td>
  16. <!-- Puste pola -->
  17. <td>&nbsp;</td>
  18. <td>&nbsp;</td>
  19. <td>&nbsp;</td>
  20. <td>&nbsp;</td>
  21. </tr><tr>
  22. <!-- Godzina 11.00 na podstawie wartości z MySQL gdzie podana jest godzina startu i konica czyli 10.00-15.00 -->
  23. <td>11.00</td>
  24. <td>&nbsp;</td>
  25. <td>&nbsp;</td>
  26. <td>&nbsp;</td>
  27. <td>&nbsp;</td>
  28. <td>&nbsp;</td>
  29. </tr><tr>
  30. <!-- Godzina 12.00 na podstawie wartości z MySQL gdzie podana jest godzina startu i konica czyli 10.00-15.00 -->
  31. <td>12.00</td>
  32. <td>&nbsp;</td>
  33. <td>&nbsp;</td>
  34. <td>&nbsp;</td>
  35. <td>&nbsp;</td>
  36. <td>&nbsp;</td>
  37. </tr><tr>
  38. <!-- Godzina 13.00 na podstawie wartości z MySQL gdzie podana jest godzina startu i konica czyli 10.00-15.00 -->
  39. <td>13.00</td>
  40. <td>&nbsp;</td>
  41. <td>&nbsp;</td>
  42. <td>&nbsp;</td>
  43. <td>&nbsp;</td>
  44. <td>&nbsp;</td>
  45. </tr><tr>
  46. <!-- Godzina 14.00 na podstawie wartości z MySQL gdzie podana jest godzina startu i konica czyli 10.00-15.00 -->
  47. <td>14.00</td>
  48. <td>&nbsp;</td>
  49. <td>&nbsp;</td>
  50. <td>&nbsp;</td>
  51. <td>&nbsp;</td>
  52. <td>&nbsp;</td>
  53. </tr><tr>
  54. <!-- Godzina 15.00 na podstawie wartości z MySQL gdzie podana jest godzina startu i konica czyli 10.00-15.00 -->
  55. <td>15.00</td>
  56. <td>&nbsp;</td>
  57. <td>&nbsp;</td>
  58. <td>&nbsp;</td>
  59. <td>&nbsp;</td>
  60. <!-- Zawodnik 2 to nazwisko imie i konkurencja zawodnik w bazie danych ma określone że odbywa konkurencje o godz 15.00 na stanowisku 5 -->
  61. <td>Zawodnik 2</td>
  62. </tr>


takie wizualne przedstawienie pomoże mi określić które stanowiska są wolne czyli jak dodam zawodnika do bazy danych ze ma konkurencje o godz. 12.00 na 3 stanowisku to wyświetli mi się on o godz . 12.00 w 3 rekordzie.
Go to the top of the page
+Quote Post
fragov
post 9.06.2012, 13:15:49
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 19.11.2011

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


Jeśli nie musisz mieć w tego w phpcu polecam http://arshaw.com/fullcalendar/
Go to the top of the page
+Quote Post
ghastblood
post 9.06.2012, 13:41:47
Post #7





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


Wolał bym php'a bo jquery i javascript wgl nie znam
Go to the top of the page
+Quote Post
kefirek
post 9.06.2012, 16:06:40
Post #8





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Chodziło mi o bazę danych byś podał jakie masz tabele i nazwy kolumn oraz przykładowe dane w tabelach.
Go to the top of the page
+Quote Post
ghastblood
post 9.06.2012, 20:52:35
Post #9





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


Zawodnik
-id
-nazwisko
-imie
-klub
Konkunrecjie
-Nazwa konkurencji
konkurencje_zawodnikow
-id_zawodnika
-id_konkurencji
-godzina
-stanowisko
-pawilon
Pawilony
-nazwa_pawilonu

Oczywiście każde ma ID z A_I

Proszę o pomoc
Go to the top of the page
+Quote Post
kefirek
post 9.06.2012, 22:22:56
Post #10





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. $ilosc_stanowisk = mysql_result(mysql_query("SELECT ilosc_stanowisk FROM pawilony"),0) or die(mysql_error());
  2.  
  3. $array_zawodnicy = array();
  4.  
  5. $sql_wynik = mysql_query("SELECT * FROM zawodnik LEFT JOIN konkurencje_zawodnikow ON id_zawodnika = id LEFT JOIN konkurencje ON id_konkurencji = id_konk WHERE pawilon = '25m'") or die(mysql_error());
  6. while($sql_r = mysql_fetch_assoc($sql_wynik)){
  7. $array_zawodnicy[] = $sql_r;
  8. }
  9.  
  10. echo '<table border="1">';
  11. for($t=9; $t<=18; $t++){
  12. echo '<tr>';
  13. echo '<td>'.($t == 9 ? 'Godz./Stanowisko' : $t.'.00').'</td>';
  14.  
  15. for($s=1; $s<=$ilosc_stanowisk; $s++)
  16. {
  17. echo '<td>';
  18.  
  19. if($t == 9) {
  20.  
  21. echo $s;
  22.  
  23. } else {
  24.  
  25. for($i=0; isset($array_zawodnicy[$i]); $i++)
  26. {
  27.  
  28. if($array_zawodnicy[$i]['stanowisko'] == $s && $array_zawodnicy[$i]['godzina'] == $t.'.00')
  29. {
  30. echo $array_zawodnicy[$i]['nazwisko_zawodnika'];
  31. }
  32. else
  33. {
  34. echo ' ';
  35. }
  36.  
  37. }
  38.  
  39. }
  40. echo '</td>';
  41. }
  42. echo '</tr>';
  43. }
  44. echo '</table>';
  45.  


Ten post edytował kefirek 9.06.2012, 22:24:57
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: 14.07.2025 - 21:30