Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Łączenie tabel w zapytaniu INNER
Forum PHP.pl > Forum > Przedszkole
fotexxx
Witam

Trafilem na problem z ktorym się zmagam od kilku godzin i chyba juz czas poszukać pomocy biggrin.gif

A wiec tak.....

Moze po krótce napisze w czym rzecz:

  1. $sql22="SELECT * FROM clans_users WHERE id_uzytkownika=$profileID";
  2. $sql_result22=mysql_query($sql22,$connection) or die(mysql_error() );
  3. while($row=mysql_fetch_array($sql_result22)) {
  4. $moj_klan_id = $row['numer_klanu'];
  5.  
  6. echo ''.$moj_klan_id.'<br>';
  7. }

kod zwraca wartość 39 czyli jest ok


struktura tabeli:

  1. --
  2. -- Struktura tabeli dla `clans_users`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `clans_users` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `numer_klanu` int(111) NOT NULL,
  8. `id_uzytkownika` int(111) NOT NULL,
  9. `status` int(111) NOT NULL,
  10. `data` date NOT NULL,
  11. PRIMARY KEY (`id`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
  13.  
  14. --
  15. -- Zrzut danych tabeli `clans_users`
  16. --
  17.  
  18. INSERT INTO `clans_users` (`id`, `numer_klanu`, `id_uzytkownika`, `status`, `data`) VALUES
  19. (7, 39, 3, 1, '2011-08-24');


struktura tabeli nr 2:
  1. --
  2. -- Struktura tabeli dla `clans`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `clans` (
  6. `id` int(111) NOT NULL AUTO_INCREMENT,
  7. `gra` int(11) NOT NULL,
  8. `autor` int(255) NOT NULL,
  9. `nazwa` text COLLATE utf8_unicode_ci NOT NULL,
  10. `opis` text COLLATE utf8_unicode_ci NOT NULL,
  11. `www` text COLLATE utf8_unicode_ci NOT NULL,
  12. `data` date NOT NULL,
  13. PRIMARY KEY (`id`)
  14. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=40 ;
  15.  
  16. --
  17. -- Zrzut danych tabeli `clans`
  18. --
  19.  
  20. INSERT INTO `clans` (`id`, `gra`, `autor`, `nazwa`, `opis`, `www`, `data`) VALUES
  21. (39, 1, 1, 'moj klan testowy', 'm??j opis testowy', 'www.mojklan.pl', '2011-08-24');


tabela clans_users zawiera informacje ktory uzytkownik do jakiego klanu należy natomiast tabela clans zawiera informacje o wszystkich utworzonych klanach
Wszystko sie rozchodzi o to ze chce połączyc te tabele w jednym zapytaniu aby wyciagając rekordy pasujące do warunku where uzyskując dodatkowe informacje z tabeli clans takie jak nazwa i www .Pole numer_klanu odpowiada polu id tabeli clans

próbowalem tak ale z niewiadomych mi powodow nie zwraca żadnych rekordów:

  1. $sql22="SELECT * FROM clans_users INNER JOIN clans ON clans.nazwa = clans_users.numer_klanu WHERE id_uzytkownika=$profileID";
  2. $sql_result22=mysql_query($sql22,$connection) or die(mysql_error() );
  3. while($row=mysql_fetch_array($sql_result22)) {
  4. $moj_klan_id = $row['nazwa'];
  5.  
  6. echo ''.$moj_klan_id.'<br>';
  7. }



bede wdzieczny za pomoc bo juz mi bezpieczniki siadają biggrin.gif

Pozdrawiam
CuteOne
clans.nazwa - to string (prawdopodobnie)
clans_users.numer_klanu - to liczba

  1. SELECT * FROM clans_users INNER JOIN clans ON clans.id = clans_users.numer_klanu WHERE clans_users.id_uzytkownika=$profileID
fotexxx
dzieki stary za pomoc ...... pomogło
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.