Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] [mysql] Problem z wykonaniem zapytania i wyświetleniem danych
pioch
post 23.12.2006, 22:49:36
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


witam
czy mógłby ktoś spojrzeć fachowym okiem na moje zapytanie i powiedziec/wytłumaczyć gdzie jest bład

  1. <?php
  2.  
  3. $nazwabazydanych = "serwis_oe";
  4.  
  5. $link = mysql_connect("localhost", "root", "krasnal")
  6. or die("BَD: nie można się połączyć z serverem mySQL");
  7.  
  8. $result = mysql_select_db ($nazwabazydanych);
  9. sprawdz_czy_nie_bylo_bledu($result, __LINE__);
  10.  
  11. $query = '
  12.  
  13. SELECT
  14.  m.id, k1.nazwa, k2.nazwa
  15. FROM
  16. mecz as m, druzyny as k1, druzyny as k2
  17. WHERE
  18.  '.(!empty($_GET['id']) ? ('m.id='.((int)$_GET['id']).' AND ') : '') .'
  19. k1.id = m.gospodarz AND
  20. k2.id = m.przeciwnik 
  21. ORDER BY
  22. m.id, k1.nazwa, k2.nazwa
  23.  
  24. ';
  25.  
  26.  
  27.  
  28.  
  29.  
  30. $result = mysql_query($query);
  31. sprawdz_czy_nie_bylo_bledu($result, __LINE__);
  32.  
  33. while ($row = mysql_fetch_array($result)) {
  34.  
  35. $meczid  = $row[0]; 
  36. $gospodarz = $row[1];
  37. $przeciwnik = $row[2];
  38.  
  39. echo " $gospodarz - $przeciwnik ";
  40.  
  41.  
  42. $query2 = '
  43.  
  44. SELECT
  45. imie, nazwisko, rodzaj
  46. FROM
  47. sklady, pilkarze
  48. WHERE
  49.  
  50. sklady.meczid="$meczid" AND
  51.  sklady.klubid = "$gospodarz" AND
  52. pilkarze.id = sklady.pilkarzid AND
  53. (sklady.rodzaj = "P" OR sklady.rodzaj = "Z")
  54.  
  55. ';
  56.  
  57. $result2 = mysql_query($query2);
  58. sprawdz_czy_nie_bylo_bledu($result2, __LINE__);
  59.  
  60. echo '<TABLE border="1">' .
  61.  '<TR><TD><STRONG>Imię</STRONG></TD>' .
  62.  '<TD><STRONG>Nazwisko</STRONG></TD>' .
  63.  '<TD><STRONG>Rodzaj</STRONG></TD></TR>';
  64.  
  65. while ($row2 = mysql_fetch_array($result2)) {
  66.  
  67. $imie = $row2['imie'];
  68. $nazwisko = $row2['nazwisko'];
  69. $rodzaj = $row2['rodzaj'];
  70.  
  71. echo "<TR><TD>$imie</TD>";
  72. echo "<TD>$nazwisko</TD>";
  73. echo "<TD>$rodzaj</TD></TR>";
  74. }
  75. echo '</TABLE>';
  76. }
  77.  
  78.  
  79.  
  80. ?>


Dlaczego mi nie pobiera z tabeli sklady imienia, nazwiska i rodzaj , powstaje pusta tabela?
Gdzie jest błąd

Ten post edytował pioch 24.12.2006, 12:39:09
Go to the top of the page
+Quote Post
legorek
post 24.12.2006, 00:07:28
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Poczytaj o różnicy między ' (apostrof) a " (cudzysłów) i będziesz wiedział jaki masz błąd w $query2.


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 00:56:54
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


poproawiłem nawiasy i nadal nie działa , nie wyświetla żadnego błedu....
pojawia sie tylko tabela Imię Nazwisko Rodzaj i nie ma graczy z tabeli sklady ...

prosze o pomoc
Go to the top of the page
+Quote Post
Balas
post 24.12.2006, 09:12:11
Post #4





Grupa: Zarejestrowani
Postów: 347
Pomógł: 0
Dołączył: 27.08.2005
Skąd: Inowrocław

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


w query2 popraw:

"$meczid"

na

"'.$meczid.'"


i analogicznie do reszty smile.gif

Ten post edytował Balas 24.12.2006, 09:13:18


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 11:44:57
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


  1. <?php
  2. $query2 = '
  3.  
  4. SELECT
  5. imie, nazwisko, rodzaj
  6. FROM
  7. sklady, pilkarze
  8. WHERE
  9.  
  10. sklady.meczid="'.$meczid.'" AND
  11.  sklady.klubid = "'.$gospodarz.'" AND
  12. pilkarze.id = sklady.pilkarzid AND
  13. (sklady.rodzaj = "P" OR sklady.rodzaj = "Z")
  14.  
  15. ';
  16. ?>


poproawiłem i dalej nie wyświetla graczy ( składu) , nie wiem w czym jest rzecz. Mecz pokazuje ale b ez składów...

Prosze o pomoc
Go to the top of the page
+Quote Post
skowron-line
post 24.12.2006, 12:25:25
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. while ($row = mysql_fetch_array($result)) {
  3.  
  4. $meczid  = $row[0]; 
  5. $gospodarz = $row[1];
  6. $przeciwnik = $row[2];
  7. ?>


zmien $row[0] na odpowiadajace pola w tabeli


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 12:30:39
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


Gdy zmieniłem
  1. <?php
  2. while ($row = mysql_fetch_array($result)) {
  3.  
  4. $meczid  = $row['m.id']; 
  5. $gospodarz = $row['k1.nazwa'];
  6. $przeciwnik = $row['k2.nazwa'];
  7.  
  8. echo " $meczid = $gospodarz - $przeciwnik ";
  9. ?>


to przestało działać wszystko ....
Go to the top of the page
+Quote Post
wipo
post 24.12.2006, 12:43:27
Post #8





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


pioch poczytaj dokładnie jak to powinno wyglądać

nie $row['m.id'] tylko $row['id']
nazwy tabel są tylko widoczne dla sql-a - no chyba że sam nazwiesz tak pole
Jak masz kilka pól id to wywołaj to tak SELECT m.id as id_meczu, itd.....
i potem $row['id_meczu'];


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 12:51:51
Post #9





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


problem pojawia sie z
  1. <?php
  2. $gospodarz = $row[1];
  3. $przeciwnik = $row[2;
  4. ?>


ponieważ są w jednej tabeli dryzyny.... mają te same id , dlatego
  1. <?php
  2. $query = '
  3. SELECT
  4.  m.id, k1.nazwa, k2.nazwa
  5. FROM
  6. mecz as m, druzyny as k1, druzyny as k2
  7. WHERE
  8.  '.(!empty($_GET['id']) ? ('m.id='.((int)$_GET['id']).' AND ') : '') .'
  9. k1.id = m.gospodarz AND
  10. k2.id = m.przeciwnik 
  11. ORDER BY
  12. m.id, k1.nazwa, k2.nazwa
  13.  
  14. ';
  15. ?>

myślałem ze sprawa się rozwiąze poprzez te zapytanie...


Oczywiście ze tak się stało, pobiera kazdej druzyny osobno id i moge wyświetlić sobie poprzez $_GET id meczu, druzyny sie zmieniają prawidłowo....

Ale dlaczego te zapytanie nie chce pobrac mi iddruzyny= $gospodarz

  1. <?php
  2. $query2 = '
  3.  
  4. SELECT
  5. imie, nazwisko, rodzaj
  6. FROM
  7. sklady, pilkarze
  8. WHERE
  9.  
  10. sklady.meczid="$meczid" AND
  11.  sklady.klubid = "$gospodarz" AND
  12. pilkarze.id = sklady.pilkarzid AND
  13. (sklady.rodzaj = "P" OR sklady.rodzaj = "Z")
  14.  
  15. ';
  16.  
  17. $result2 = mysql_query($query2);
  18. sprawdz_czy_nie_bylo_bledu($result2, __LINE__);
  19. ?>


sam juz nie wiem..... Może mi ktoś to wytłumaczy , pomoże aby nie robić prostych błędów echss

Ten post edytował pioch 24.12.2006, 12:53:06
Go to the top of the page
+Quote Post
wipo
post 24.12.2006, 12:54:41
Post #10





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


  1. SELECT
  2. m.id, k1.nazwa AS nazwa1, k2.nazwa AS nazwa2
  3. FROM mecz AS m, druzyny AS k1, druzyny AS k2
  4. WHERE '.(!empty($_GET['id']) ? ('m.id='.((int)$_GET['id']).' AND ') : '') .'
  5. k1.id = m.gospodarz AND k2.id = m.przeciwnik
  6. ORDER BY m.id, k1.nazwa, k2.nazwa
  7. ';


a wyświetlach $row['nazwa1'] lub $row['nazwa2']


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 13:09:47
Post #11





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


  1. <?php
  2. $query = '
  3.  
  4. SELECT
  5. m.id, k1.nazwa as nazwa1, k2.nazwa as nazwa2
  6. FROM mecz as m, druzyny as k1, druzyny as k2
  7. WHERE '.(!empty($_GET['id']) ? ('m.id='.((int)$_GET['id']).' AND ') : '') .'
  8. k1.id = m.gospodarz AND k2.id = m.przeciwnik
  9. ORDER BY m.id, k1.nazwa, k2.nazwa
  10.  
  11. ';
  12.  
  13.  
  14.  
  15.  
  16.  
  17. $result = mysql_query($query);
  18. sprawdz_czy_nie_bylo_bledu($result, __LINE__);
  19.  
  20.  
  21. while ($row = mysql_fetch_array($result)) {
  22.  
  23. $meczid = $row['id'];
  24. $gospodarz = $row['nazwa1'];
  25. $przeciwnik = $row['nazwa2'];
  26.  
  27.  
  28. echo " $meczid $gospodarz - $przeciwnik ";
  29.  
  30. $query2 = '
  31.  
  32. SELECT
  33. imie, nazwisko, rodzaj
  34. FROM
  35. sklady, pilkarze
  36. WHERE
  37.  
  38. sklady.meczid="$meczid" AND
  39. sklady.klubid ="$gospodarz" AND
  40. pilkarze.id = sklady.pilkarzid 
  41.  
  42. ';
  43.  
  44. $result2 = mysql_query($query2);
  45. sprawdz_czy_nie_bylo_bledu($result2, __LINE__);
  46.  
  47. echo '<TABLE border="1">' .
  48.  '<TR><TD><STRONG>Imię</STRONG></TD>' .
  49.  '<TD><STRONG>Nazwisko</STRONG></TD>' .
  50.  '<TD><STRONG>Rodzaj</STRONG></TD></TR>';
  51.  
  52. while ($row2 = mysql_fetch_array($result2)) {
  53.  
  54. $imie = $row2['imie'];
  55. $nazwisko = $row2['nazwisko'];
  56. $rodzaj = $row2['rodzaj'];
  57.  
  58. echo "<TR><TD>$imie</TD>";
  59. echo "<TD>$nazwisko</TD>";
  60. echo "<TD>$rodzaj</TD></TR>";
  61. }
  62. echo '</TABLE>';
  63. }
  64. ?>


wipo nic nie pomogło , dalej to samo

prawidłowo wyświetla id meczu , gospodarz i przeciwnika oraz początek tabeli mianowicie
imie nazwisko rodzaj

nie wiem dlaczego nie działa....

dodam ze pod $gospodarz i $przeciwnik kryje się id druzyny
Go to the top of the page
+Quote Post
wipo
post 24.12.2006, 13:16:36
Post #12





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


A przetestuj to pokolei
Najpierw zobacz czy $row się poprawnie wyświetla. Dopiero potem rób kolejne zapytania


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 13:18:49
Post #13





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


wiem , tak robie

wszystko sie prawidłowo wyświetla do 2 zapytania

wyglada tak jakby nie pobierało id meczu , oraz id druzyny
Go to the top of the page
+Quote Post
wipo
post 24.12.2006, 13:27:04
Post #14





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Ale ty nie pobiersz id meczy ani id drużyny


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 13:33:01
Post #15





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


hmm

pobieram
tabeli mecz mam id(meczu) , gospodarz ( id druzyny ) , przeciwnik ( id druzyny )
tabela druzyna id, nazwa


czy moze inaczej to trzeba pobrać , sam juz nie wiem....

coś jest nie tak z tym drugim zapytaniem
prosze o pomoc bo sam juz nie wiem....co jest źle

Ten post edytował pioch 24.12.2006, 13:37:53
Go to the top of the page
+Quote Post
wipo
post 24.12.2006, 13:43:40
Post #16





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


W podanym ptrzykładzie pobierasz tylko ich nazwy, dopisz też ID i bedzie działać


--------------------
Go to the top of the page
+Quote Post
pioch
post 24.12.2006, 13:45:26
Post #17





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

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


  1. <?php
  2. $query = '
  3.  
  4. SELECT
  5. m.id, k1.nazwa as nazwa1, k2.nazwa as nazwa2, k1.id as id1, k2.id as id2
  6. FROM mecz as m, druzyny as k1, druzyny as k2
  7. WHERE '.(!empty($_GET['id']) ? ('m.id='.((int)$_GET['id']).' AND ') : '') .'
  8. k1.id = m.gospodarz AND k2.id = m.przeciwnik
  9. ORDER BY m.id, k1.nazwa, k2.nazwa
  10.  
  11. ';
  12.  
  13.  
  14.  
  15.  
  16.  
  17. $result = mysql_query($query);
  18. sprawdz_czy_nie_bylo_bledu($result, __LINE__);
  19.  
  20. //przetwarzamy kolejne mecze
  21. while ($row = mysql_fetch_array($result)) {
  22.  
  23. $meczid = $row['id'];
  24. $gospodarz = $row['nazwa1'];
  25. $przeciwnik = $row['nazwa2'];
  26.  $gospodarzid = $row['id1'];
  27. $przeciwnikid = $row['id2'];
  28.  
  29.  
  30. echo " $meczid $gospodarz ($gospodarzid ) - $przeciwnik ($przeciwnikid ) ";
  31.  
  32. //ustalamy piłkarzy, którzy są z zadanej drużyny i grali w zadanym meczu
  33. $query2 = '
  34.  
  35. SELECT
  36. imie, nazwisko, rodzaj
  37. FROM
  38. sklady, pilkarze
  39. WHERE
  40.  
  41. sklady.meczid="$meczid" AND
  42. sklady.klubid ="$gospodarzid" AND
  43. pilkarze.id = sklady.pilkarzid 
  44.  
  45. ';
  46. ?>


dalej nie działa
może większa podpowiedz.. święta idą smile.gif

Ten post edytował pioch 24.12.2006, 13:49:23
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: 13.06.2025 - 02:37