| Autor | Zpráva | ||
|---|---|---|---|
| Saria Profil |
#1 · Zasláno: 12. 5. 2006, 08:04:28
Dobrý den, pracuji poprvé s DB a mám vytvořen učební příklad. Studuji vše podle knihy PHP a MySQL, Larry Ullman. Mám vytvořenu stránku, kde se uživatel přihlásí, zaregistruje a data se uloží do DB. Tuto část jsem pochopila. Pak jsem vytořila stránku , kde si uživatel vloží inzerát, může přidat fotografii, atd. To jsem také zvládla. Co mi činí potíže je vytvořit správnou druhou tabulku..
Do druhé tabulky ukládám údaje: název souboru, velikost, typ unzerátu, dobu inzerátu, atd.... Jako promární klíč mám id_prijetí. V první tab. mám pr. klíč id_uzivatele. V tabulce 2 je id_uzivatele jako cizí klíč. Vytvořila jsem také dotaz: $dotaz = "SELECT id_uzivatele FROM uzivatele, inzerce WHERE uzivatele, id_uzivatele = inzerce, id_uzivatele"; //(UŽIVATELSKÉ JMÉNO) Ale dál s tím nemohu pohnout. Podle knihy bych měla mít nějaký sloupec z 2.tab. zařazen do 1. tab. Ale asi mi uniká nějaký základní princip, nemohu to prakticky pochopit. Saria |
||
| Kajman_ Profil * |
#2 · Zasláno: 12. 5. 2006, 09:40:15
Prostě uděláte dotaz na více tabulek. Problém máte v tom, že v knížce jsou asi tečky a Vy tam máte čárky.
SELECT i.*, u.jmeno_uzivatele FROM uzivatele u, inzerce i WHERE u.id_uzivatele = i.id_uzivatele |
||
| Saria Profil |
#3 · Zasláno: 12. 5. 2006, 10:34:33
Váš řádek i ten původní mi načte hodnotu 1, 2, 3, atd.....
Jen v principu nenačte iduživatele, který si inzerát vložil. Je ale docela možné, že musí být nadefinovány podmínky, za kterých takto PHP script s inzerentním formulářem funguje a to já nemám. Nebo jsem si vybrala složitější věc a měla bych se učit spojovat dvě tabulky na něčem příhodnějším. Každopádně jsem si našla www.linux.soft a tam je jedna z prvních rad, mít to promyšleno, což já nemám a vytvářím tabulky a řádky podle toho, co se učím. Po tom, co jsem se dověděla v linuxu si teď ani nejsem jistá, je-li 1:N vhodná, nemělo-li by to být spíš N:N. Člověk to asi již intuitivně pozná z praxe, ale tu já ještě nemám. Takže pokračuji stylem pokus-omyl a občas i pokus-funguje. Zatím jsem s tím teda nehla..... Saria |
||
| Kajman_ Profil * |
#4 · Zasláno: 12. 5. 2006, 11:06:13
Myslím, že to máte navrhnuté dobře.
Ten dotaz vrátí všechny šloupečky v tabulce inzerce a příslušný řádek se jménem z tabulky uzivatele. Pokud se koukáte jen na první sloupeček, tak tam pochopitelně budou čísla inzerátů. |
||
| Saria Profil |
#5 · Zasláno: 12. 5. 2006, 12:12:42
Pročítala jsem si různé dotazy v této sekci a musím teda před Vámi smeknout jak dovedete na vše přijít.....
Tímto se chci omluvit za otázku, nad kterou se Vám musí asi protáčet oči v sloup. tabulka1: tabulka2: id_uzivatele id_prijeti uziv_jmeno id_uzivatele jmeno typ_inzeratu prijmeni titul_inzeratu email nazev_souboru heslo velikost_souboru datum_registrace typ_souboru kategorie doba_inzerce popis cena datum_prijeti ověřené, zadané a upravené údaje (pro vložení inzerátu) z formuláře načtu příkazem INSERT INTO do tabulky 2 a id_uživatel do tabulky2 vyberu a vložím již zmíňovaným příkazem..ale teď ten "blbý dotaz"....ten příkaz mi vloží id_uživatele, který je zaregistrovaný, přihlášený a chce vložit inzerát=vložil inzerát ? Nechybí mi nějaká hodnota řádku v tabulce1? Nemůžu si pomoci, ale určitě to nemám dobře..... PS: to s tím prvním sloupečkem jsem náhodou, vyjímečně věděla, když si dám projít tabulku, tak je to v záhlaví rozepsáno, co je která hodnota.... a právě u id_uzivatel(tab.2) byla 0, zkusila jsem zadat vých. hodnotu 1(tím začíná i číslování id_uzivatele v tab.1) a vypsalo mi to 1, pak 2, ...atd. Saria |
||
| Kajman_ Profil * |
#6 · Zasláno: 14. 5. 2006, 18:20:27
Dělal bych to také tak. Prostě u inzerátu sloupeček s id_uzivatele. N:N je v tomhle asi k nepotřebě, protože těžko bude inzerát, který nabízí více uživatelů dohromady.
|
||
|
Časová prodleva: 19 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0