Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML][PHP] Pobieranie danych
Forum PHP.pl > Forum > Przedszkole
menhils
Ta funkcja sprawdza czy dany user_name (z tabeli users) ma w wierszu group 1 czy 2:
  1. function nick($user_data) {
  2. if ($user_data['group']!='1'){
  3. echo '<span class="lol">'.$user_data['user_name'].'</span>';
  4. }
  5. else {
  6. echo '<span class="lola">'.$user_data['user_name'].'</span>';
  7. }


I ta fukcji spełnia swoje działanie. Jeśli loguję się ja (group-1) nick mam na czerwono. Jeśli loguje się zwykły user nick jest zwykły.

Problem polega na tym, że nick wyświetlany przy napsianym news'ie jest pobierany z tabeli newsy. I pytanie brzmi jak pobrać z danego nick'u group z tabeli users?

Z góry dzięki, troche namieszane
Kshyhoo
Nie wiem, czy jest za późno dla mnie czy dla Ciebie, bo nie bardzo rozumiem. Przede wszystkim, skąd mamy wiedzieć, jaka jest struktura bazy, jak wyglądają zapytania i w końcu, co to za silnik? Wybacz, ale to nie jest forum wróżbiarskie... czarodziej.gif
menhils
sorry że nie jasno opsiane. To nie jest silnik, sam to pisałem

W bazie są tebele: users
  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `user_name` varchar(255) NOT NULL,
  4. `user_password` varchar(40) NOT NULL,
  5. `user_email` varchar(255) NOT NULL,
  6. `user_regdate` int(10) UNSIGNED NOT NULL,
  7. `user_from` varchar(255) NOT NULL,
  8. `user_website` varchar(255) NOT NULL,
  9. `group` varchar(255) NOT NULL,
  10. `czas` int(10) NOT NULL,
  11. PRIMARY KEY (`user_id`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;


i news
  1. CREATE TABLE IF NOT EXISTS `news` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `tytul` tinytext CHARACTER SET utf8 NOT NULL,
  4. `tresc` text CHARACTER SET utf8 NOT NULL,
  5. `tresc_dluga` text CHARACTER SET utf8 NOT NULL,
  6. `data` varchar(50) CHARACTER SET utf8 NOT NULL,
  7. `user` varchar(255) CHARACTER SET utf8 NOT NULL,
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;


Chodzi o to żę na stronie w np. ostatnio zalogowanych gdzie są nicki poradziełm sobie z tym. Tylko nie wiem jak przy napsianym newsie pobrac group z tabeli users bo nick przez kogo został napisany dany news jest zapsiany w tabeli news
Wazniak96
1. Poczytaj jeszcze trochę o relacjach. Nie poprawnie zapisujesz nick do tabeli news. Powinieneś zapisywać tam id usera.
2. Łap obrazek, jak jesteś kumaty to masz w nim wszystko co trzeba SQL Joins wink.gif
menhils
W miejscu $wiersz['userid'] wyświetla się id użytkownika który napisał dango newsa. Za bardzo nie wiem jak sie za to zabrać żeby wyświetlało nazwę tego użytkownika z tabeli users według tego userid
  1. <?php
  2. $link=mysql_query("SELECT * FROM news ORDER BY data desc");
  3.  
  4. while($wiersz=mysql_fetch_array($link))
  5. {
  6.  
  7.  
  8. echo "<b>".$wiersz['id']."".clear($wiersz['tytul'])."</b>";
  9. echo '<br>';
  10. echo $wiersz['data'];
  11. echo ' | By ';
  12. echo $wiersz['userid'];
  13. echo '<br>';
  14. echo BBCode(clear($wiersz['tresc']));
  15. echo '<br>';
  16. echo $wiersz['id'];
  17. echo '<br>';
  18. }
  19.  
  20. ?>
nospor
Do swojego zapytania z news musisz dolaczyc jeszcze tabele z uzytkownikami przy pomocy LEFT JOIN. Wowczas bedziesz mial wszystkie informacje jakie potrzebujesz
menhils
Problem rozwiązany
  1. $link=mysql_query("SELECT * FROM news join users on news.userid = users.user_id ORDER BY data desc");
nospor
NIe: echo nick($wiersz[user_name]);
a: echo nick($wiersz);

Moglbys patrzec co oczekujesz w funkcjach, ktore sam piszesz...
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.