Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie dwóch tabel - pytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
InosU31
Witam

Chce złączyć dwie tabele ale nie chce żeby wynik z pierwszej sie powtarzał, najlepiej pokaże na przykładzie....
Mam 2 tabele: pierwsza i druga
1. id, nazwa_gl
2.id, nazwa_inne, wspolne

nazwa_gl = wspole - czyli maja takie same wartosci
---- to jest tylko przyklad pisany z glowy wiec moglem zle cos napisac---------------

  1. SELECT nazwa_gl, nazwa_inne FROM pierwsza JOIN INNER druga ON pierwsza.nazwa_gl = druga.wspolne



w wyniku pokaze mi sie cos takiego:

nazwa_gl nazwa_inne
dane edytuj
dane dodaj
dane wyswietl


chodzi mi o to czy da sie pogrupować jakos to zapytanie żeby w wyniku pojawilo sie tylko raz "dane" np.

nazwa_gl nazwa_inne
dane edytuj
----- dodaj
----- wyswietl

lub


dane
edytuj
dodaj
wyswietl


z góry dzieki za cenne wskazówki:-) Niestety w obecnej chwili nie mam dostępu do mysql wiec nie moge zobaczyc czy zadziala funkcja Group by lub dwa selekty w jednym zapytaniu. Może da się napisać to jakimś innym zapytaniem - jutro sprawdze.

Pozdrawiam

mmmmmmm
Takie rzeczy to ... na kliencie.
InosU31
nie rozumiem jakim kliencie? nie da sie tego zrobic w mysql?
mmmmmmm
Da się, tylko się po prostu nie opłaca. SQL nie do tego służy. Zapytanie byłoby kolosalne, a na kliencie (np. w PHP to 3 linijki kosu:
  1. if($starawartosc==$nowawartosc) echo '';
  2. else {echo $nowawartosc; $starawartosc=$nowawartosc;};
wiiir
pusc 2 zapytania

petla na tabele pierwsza

potem petle na tabela druga where id = pierwsza_id
kristaps
Jedna pętla wystarczy, jeżeli łączy tabele.


  1. $dane = '';
  2.  
  3. while(...){
  4.  
  5. $dane .= "<tr><td>" . ($row["nazwa_gl"] != $dane? $row["nazwa_gl"] : '') . "</td><td>".$row["nazwa_inne"]."</td></tr>";
  6. $dane = $row["nazwa_gl"];
  7.  
  8. }
InosU31
dziekuje za odpowiedzi:-)

Właśnie tak zrobiłem zastosowałem dwa foreach ale skutek nie jest satysfakcjonujący....

Zrobiłem sobie menu rozwijane i w jednej tabeli mam linki a w drugiej mam pod_linki. Linki mi sie fajnie wyswietlają ale podlinki nie chcą:-( juz siedze nad tym trzeci dzień i nie moge znaleść rozwiązania... spróbuje jeszcze z petla for lub while.... Podam to co robie moze ktoś z was zobaczy gdzie robie blad:

Parsuje kod html....

glowny (linki):
  1. <div id="ramka">
  2.  
  3. <div id="ramka_naglowek" style="text-align:center;">
  4. {$tytul}
  5. </div>
  6.  
  7. <div id="menu_rozwijane">
  8.  
  9. <ul>
  10. {$menu_roz}
  11.  
  12.  
  13.  
  14. </ul>
  15.  
  16. </div>
  17.  
  18. </div>
  19.  


drugi plik (pod_linki)

  1. <li>
  2. <ul>
  3. {$pod_menu_roz}
  4.  
  5. </ul>
  6. </li>
  7.  



a to kod php:

  1. $result = $dbase->get_query("
  2. SELECT * FROM panel WHERE user='au'
  3. ");
  4.  
  5. if ($result)
  6. {
  7. $table_name = strtolower($result[0]['naglowek']);
  8.  
  9. $news_login->tassign['tytul'] = "<strong>Panel</strong>";
  10.  
  11.  
  12. foreach ($result as $record)
  13. {
  14.  
  15. $result_linki = $dbase->get_query("
  16. SELECT * FROM linki where user = 'au' and id_ramki = '".$record['id_ramki']."'
  17. ");
  18.  
  19.  
  20.  
  21. if ($result_linki)
  22. {
  23.  
  24. foreach ($result_linki as $record_linki)
  25. {
  26.  
  27.  
  28. $pod_menu_roz->tassign['pod_menu_roz'] .= "<li><a href=\"?panel=".strtolower($record_linki['name_link'])."&amp;pid=".$record_linki['id_linki']."&amp;np=1\">".$record_linki['name_link']."</a></li>";
  29.  
  30.  
  31. }
  32.  
  33.  
  34.  
  35. }
  36.  
  37. $news_login->tassign['menu_roz'] .= "<li><a href=\"?panel=".strtolower($record['smol_naglowek'])."&amp;pid=".$record['id_ramki']."&amp;np=1\">".$record['naglowek']."</a></li>";
  38.  
  39.  
  40. //---------------------------------------------------------------------------
  41. } //koniec foreach
  42.  
  43. }
  44.  
  45. }
  46.  
  47.  
  48. $news_login->tassign['menu_roz'] .= $pod_menu_roz->parse("panel/common/pod_menu_rozwijane.html");
  49. $main->tassign['news_login'] = $news_login->parse("panel/common/menu_rozwijane.html");
  50. $page->tassign['main'] = $main->parse("panel/common/content.html");



pozdrawiam i dzieki za zainteresowanie:-)
kristaps
Zapytanie je w ogóle zwraca? Jeśli tak to masz machniętą pętlę.
InosU31
mi juz ręce opadaja :-( no nic to nie dział na te rzeczy... dzieki wielkie za wskazówki:-)

Pozdrawiam serdecznie
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.