Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] relacje problem
lnn
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


witam, chcialem sprawdzic czy dzialaja mi relacje, bo robilem je po raz pierwszy i tu tez prosze o wskazowki co moglem zrobic nie tak

baza nazywa sie test, niby sie z nia laczy ale mysle ze jest jakis blad w zapytaniu

  1. CREATE TABLE `users` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `login` varchar(30) NOT NULL,
  4. `pass` char(32) NOT NULL,
  5. `email` varchar(50) NOT NULL,
  6. `name` varchar(40) NOT NULL,
  7. `lastname` varchar(40) NOT NULL,
  8. `reg_date` datetime DEFAULT NULL,
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  11.  
  12. INSERT INTO `users` VALUES (1, 'login', 'haslo', 'email@email.com', 'Jan', 'Nowak', '');
  13. INSERT INTO `users` VALUES (2, 'login2', 'haslo', 'email2@email.com', 'Jan', 'Nowak2', '');
  14. INSERT INTO `users` VALUES (3, 'login3', 'haslo', 'email3@email.com', 'Jan', 'Nowak3', '');
  15. INSERT INTO `users` VALUES (4, 'login4', 'haslo', 'email4@email.com', 'Jan', 'Nowak4', '');
  16.  
  17. CREATE TABLE `rekordy` (
  18. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  19. `nazwa` varchar(50) NOT NULL,
  20. `kraj` varchar(30) DEFAULT NULL,
  21. `user_id` int(10) NOT NULL,
  22. PRIMARY KEY (`id`),
  23. KEY `user_id` (`user_id`)
  24. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  25.  
  26. INSERT INTO `rekordy` VALUES (1, 'Pierwsza nazwa', 'Polska', 2);
  27. INSERT INTO `rekordy` VALUES (2, 'Druga nazwa', 'Polska', 4);
  28. INSERT INTO `rekordy` VALUES (3, 'Trzecia nazwa', 'Niemcy', 1);
  29. INSERT INTO `rekordy` VALUES (4, 'Czwarta nazwa', 'USA', 1);
  30. INSERT INTO `rekordy` VALUES (5, 'Piąta nazwa', 'Rosja', 1);
  31. INSERT INTO `rekordy` VALUES (6, 'Szosta nazwa', 'Polska', 3);


  1. $show = mysql_query('SELECT users.name FROM rekordy, nazwa WHERE users.id = rekordy.user_id AND users.id = 1');
  2.  
  3. echo $show ;
  4.  

mysql_error nie wywala zadnego bledu sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Max Damage
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


Jeśli chcesz wyświetlić wyniki to wypada wynik zapytania wrzucić do pętli. Primary key możesz też napisać przy definicji pola, niekoniecznie na końcu. Poczytaj o LEFT JOIN itp. Przykładowo może być tak:
  1. SELECT users.name FROM users LEFT JOIN rekordy ON users.id = rekordy.user_id WHERE users.id ='1'


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
lnn
post
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


hmm cos nie bardzo dziala to co napisales :/ wyskakuje "Resource id #3"

mam juz system logowania dla uzytkownikow, planuje zrobic cos takiego ze ktos bedzie dodawał wpis i do danego wpisu bedzie przypisany id uzytkownika tak aby mogl to potem edytowac

bedzie sie to skladalo moze z 10 tabel dlatego potrzebne sa mi relacje, niestety pierwszy raz je robie dlatego nie bardzo kumam o co chodzi, czytalem jak sie je tworzy jednakze za bardzo na przykladach to nie jest wytlumaczone, zatem chcialem stworzyc jakas przykladowa tabele zeby sprawdzic czy uda mi sie dla danego usera wyswietlic okreslone dane.

Za pomoc wielkie dzieki i wskazowki.
Go to the top of the page
+Quote Post
Max Damage
post
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


Jak wyświetlasz to co zwraca mysql_query to sie nie dziw. Przecież pisałem że trzeba wrzucić to do pętli:
  1. $result = mysql_query("SELECT users.name FROM users LEFT JOIN rekordy ON users.id = rekordy.user_id WHERE users.id ='1'");
  2. while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
  3. echo $row[0].'<br/>';
  4. }

A jak chcesz podziękować klikaj pomógł. Zawsze milej się patrzy na ilość pkt :)


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
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 Aktualny czas: 21.08.2025 - 06:25