Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Rangi na stronie
Forum PHP.pl > Forum > Przedszkole
Johnas
Witam! Zastanawiam się jak zrobić rangi worriedsmiley.gif Więc tak:
Zapytanie do sql
  1. CREATE TABLE `rangi` (
  2. `id_rangi` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `administrator` VARCHAR(100) NOT NULL,
  4. `moderator` VARCHAR(100) NOT NULL,
  5. `użytkownik` VARCHAR(30) NOT NULL,
  6. PRIMARY KEY (`id_rangi`)
  7. )
  8. ENGINE=MyISAM DEFAULT CHARACTER SET latin1
  9. COLLATE latin1_general_cs AUTO_INCREMENT=0;


Nie wiem czy dobrze napisałem ale wywołanie sie wykonało...

I teraz nie wiem jak połączyć tabele rejestracja z rangi. Przepraszam że was tu męczę wstydnis.gif Za pomoc dziękuje
john_doe
w tabeli użytkowników dajesz klucz obcy, którym jest id_rangi i łączysz te dwie tabele po tym właśnie polu
Johnas
można jakiś przykład?
Dodalem:
Kod
ALTER TABLE 'rejestracja' ADD 'id_rangi' primary key;
john_doe
przerobiłbym tabelkę rangi na taką

id_rangi
nazwa_rangi

np. tabela users składająca się z pól

user_id
user_login
user_name
user_surname
user_password
id_rangi -- to pole jest kluczem obcym

i teraz dajesz selecta
  1. SELECT user_login, user_name, user_surname, nazwa_rangi
  2. FROM users JOIN rangi ON users.id_rangi = rangi.id_rangi


i takie coś zwróci Ci użytkownika z przypisaną mu rangą
Johnas
Dobra już wiem o co chodzi. Zrobię tak jak mówisz ale jak mam zrobić aby podczas rejestracji dawało domyślna rangę użytkownik?
john_doe
jonek podczas rejestracji dajesz insert do bazy do tabeli users i w miejsce kolumny gdzie jest ranga dajesz na sztywno numer rangi do której przyporządkowany jest użytkownik
Johnas
Dzięki za pomoc. Jutro na komputerze zobaczę czy coś z tego wyjdzie. Jak by co to napisze.

Witam zrobiłem takie zapytania:
User:
  1. CREATE TABLE `rejestracja` (
  2. `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `imie` VARCHAR(100) NOT NULL,
  4. `nazwisko` VARCHAR(100) NOT NULL,
  5. `login` VARCHAR(30) NOT NULL,
  6. `haslo` VARCHAR(50) NOT NULL,
  7. `email` VARCHAR(100) NOT NULL,
  8. `kod` VARCHAR(32) NOT NULL,
  9. `data` DATETIME NOT NULL,
  10. `status` TINYINT(1) DEFAULT 0,
  11.  
  12. PRIMARY KEY (`id`)
  13. )
  14. ENGINE=MyISAM DEFAULT CHARACTER SET latin1
  15. COLLATE latin1_general_cs AUTO_INCREMENT=0;

Rangi:
  1. CREATE TABLE `rangi` (
  2. `id_rangi` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nazwa_rangi` VARCHAR(100) NOT NULL,
  4.  
  5.  
  6. PRIMARY KEY (`id_rangi`)
  7. )
  8. ENGINE=MyISAM DEFAULT CHARACTER SET latin1
  9. COLLATE latin1_general_cs AUTO_INCREMENT=0

Select:
  1. SELECT *
  2. FROM rangi, rejestracja WHERE id_rangi = id


Wiem teraz że to jest trochę źle bo powinno być w tabeli rejestracja jeszcze jedna struktura o nazwie id_rangi i powinna mieć wartość PRIMARY KEY. Jak mam zrobić alter table?
muk4
  1. ALTER TABLE `rejestracja` ADD `id_rangi` INT


Nie możesz mieć 2 kluczy PRIMARY w jednej tabeli, a widzę że id już posiada ten klucz.

Poza tym, po co robisz dodatkową tabelę z rangami. Wystarczy że do tabeli rejestracja dodasz pole `ranga` i tam będzie np. 0, 1, 2, 3.
Nazwy rang zapisz sobie do tablicy w php w pliku który zawsze includujesz np jakiś config, gdzie są trzymane dane do połączenia z bazą.
i potem robisz $tablica[0] i wartość: Administrator.

PS. Polecam PhpMyAdmin do zarządzania bazą MySQL
http://www.phpmyadmin.net/
Johnas
Udało mi się... Dziękuje ekipie forum winksmiley.jpg To jest moje najlepsze forum. Podziękowania wielkie dla was winksmiley.jpg Na razie mój skrypt którym się zajmuje jest na bezpłatnym hostingu http://youphoto.za.pl ale linki i opis stronki nie ma nic wspólnego z tematyką strony. Na razie piszę aby się nauczyć czegoś. DZIĘKUJE WAM Z CALEGO SERCA. Pozdrawiam Jonek
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.