Autor Zpráva
jakubroz
Profil
Ahoj,
potřeboval bych poradit s návrhem databáze a vubec funkčnosti registrace a přihlášení uživatelů na portále.

Chtěl bych aby se uživatel registroval, potom přihlásil a mohl měnit obsah na stránce podle svého. Takže já udělam web kde bude nějakej kus textu třeba poznámky a uživatel je bude moc editovat. (pouze po přihlášení).

Takže si něco uloží do databáze, to se na stránce bude vypisovat, ale každej uživatel si bude moc uložit svůj obsah. takže se každému po přihlášení zobrazí pouze ten jeho obsah.(který bude moc editovat)

Nechci od vás nic v php programovat pouze teoreticky jak by to mohlo fungovat. jak by měla bejt postavená databáze a jak bude fungovat php script.
Zatim mam pouze problém s tim že nevim jak udělat aby se každému uživateli, který se přihlásí zobrazil pouze ten obsah co si sám uložil.

Všem diky za ochotu a za přečtení delšího příspěvku.
Jack Finger
Profil
jakubroz
třeba:

table poznamky:
- id
- user_id
- note

table users
- id
- ...

připojování na základě poznamky.user_id = users.id, SQL dotaz: SELECT ... FROM poznamky WHERE user_id = $_SESSION['user_id']

? :o)
Adam Zábranský
Profil
Např. budeš mít 2 tabulky, jedna s uživateli a jedna s texty na stránce. Ta s uživateli bude mít sloupce ID s AUTO_INCREMENT, login a heslo, popřípadě i něco jiného. Ta s textem bude mít sloupce ID_uzivatele a text. Po přihlášení uživatele zjištíš jeho id (třeba příkazem SELECT * FROM uzivatele WHERE login=$_POST['login'] AND heslo=$_POST['heslo'] (toto je zjednodušená verze, musíš to trochu změnit)) a potom vybereš text podle toho ID uživatele.
jakubroz
Profil
jo takhle nak sem to myslel, ale jak poznam co ten uživatel má v poznámkách za id. on tam ten obsah nemusí dávat v tu dobu co se registruje a db mu přidělí id.
Jedině že by hned při registraci se rovnou vytvořil i sloupec s tim uživatelem v té tabulce s textem. potom by to id bylo shodné s tim v tabulce s uživateli.

A pak ještě dotaz: to se dá napsat sql dotaz s tim že to má vybrat data přímo z určitého řádku v tabulce?
bukaj
Profil
jakubroz
jo takhle nak sem to myslel, ale jak poznam co ten uživatel má v poznámkách za id
Když budeš vybírat dotazem, kupř. podobným jako napsal Jack Finger, z databáze poznámky, buď se ti něco vrátí, nebo ne.

Jedině že by hned při registraci se rovnou vytvořil i sloupec s tim uživatelem v té tabulce s textem. potom by to id bylo shodné s tim v tabulce s uživateli.
Ne, to ne. Myslím, že jsi nepochopil, jak se tvoří a co jsou mezitabulkové relace. Doporučuji pročíst kupř. seriál o MySQL na linuxsoftu.

to se dá napsat sql dotaz s tim že to má vybrat data přímo z určitého řádku v tabulce?
Ano, dá. Pokud má každý řádek alespoň jeden sloupec s nějakou unikátní hodnotou (většinou se používá sloupec id, navíc s příznakem autoinkrementace), jde klauzulí WHERE přesně vymezit, s jakými řádky se bude pracovat.
jakubroz
Profil
ne, tak já si mylsim že mysql docela chápu.

Já si myslim že když se uživatel bude registrovat tak tam zadá registrační údaje ty se uložej do tabulky s uživatelama a potom tam rovnou vložim další řádek do tabulky s poznámkama, protože já už tam chci mít vloženej nějakej obsah. protože potom kdyby se uživatel přihlásil tak by v těch poznámkách nic neměl a nic by se nezobrazilo. a tam se musí zobrazit stálý obsah-potom si ho akorád uživatel bude moct změnit, ale defaultně tam něco být musí.
takže proto já ten řádek musim vytvořit při registraci.

tak mi to zkuste nějak nastinit jak by se to mělo udělat za těhle podmínek. dik
To od Jack Finger jsem moc nepochopil
jakubroz
Profil
tak už jsem to pochopil.
a tohle to bych měl vložit do souboru s výpisem nebo kam?
poznamky.user_id = users.id
Jack Finger
Profil
jakubroz
uživatel se přihlásí a do $_SESSION['user_id'] se uloží jeho id. pak se vytvoří SQL dotaz pro zobrazení jeho poznámek:
SELECT ... FROM poznamky WHERE user_id = $_SESSION['user_id']

tohle
poznamky.user_id = users.id

je jen znázornění toho, jak jsou tabulky propojeny.
jakubroz
Profil
jasně. už asi vim jak na to. vrhnu se do realizace a kdyžtak se zeptam. dik

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0