Autor | Zpráva | ||
---|---|---|---|
Tomashek Profil |
#1 · Zasláno: 23. 4. 2008, 17:49:52
Chtěl bych na webu udělat poštu mezi uživateli. Nevím moc jak na to, ale mohl by mi někdo prosím napsat aspoň nějaký návrh jak by to mělo být ?
Myslím jenom principy atd...neukamenujte mě prosím :-) |
||
zooner Profil |
#2 · Zasláno: 23. 4. 2008, 17:55:29
no podle mě jednoduše, každý uživatel bude mít třeba jednu tabulku zprávy (v registraci jí třeba uděláš jako jméno uživatele + _zpravy, to je jedno), kde budou samozřejmě uložený, posílání bych udělal tak, že když někdo bude chtít poslat zprávu, tak napíše jméno uživatele, ty to v kódu přebereš, že třeba uživatel "Tom" má tabulku zpráv "Tom_zpravy"a tam to zapíšeš, doufám že to pochopíš, asi je to trochu krkolomné, a možná sou ji jiná řešení
|
||
TSD Profil |
#3 · Zasláno: 23. 4. 2008, 17:58:25 · Upravil/a: TSD
Princip:
Vytvoř si v databázi tabulku osob a tabulku zpráv. Každá zpráva bude mít IDodesilatele, IDprijemce, casOdeslani, Predmet, Text a LeziUOdesilatele. Při posílání vložíš zprávu dvakrát, jednou bude LeziUOdesilatele = 1 a jednou nula. Každý bude mít v přijaté poště zprávy, které mají jeho ID ve sloupci IDprijemce a LeziUOdesilatele = 0. A v odeslané poště bude mít každý zprávy, které mají jeho ID v IDodesilatele a LeziUOdesilatele = 1. Takhle jsem to kdysi udělal a na interní "poštu" uvnitř uzavřené komunity mi to stačilo. |
||
Petyk Profil |
#4 · Zasláno: 23. 4. 2008, 18:19:47
TSD
Moc teda nechapu proc duplicitni zpravy a na co je tam to "LeziUOdesilatele". |
||
TSD Profil |
#5 · Zasláno: 23. 4. 2008, 18:26:26
Petyk
Když si LeziUOdesilatele odmyslíš, tak to bude fungovat jak? Jeden druhému napíše zprávu, jeden ji pak uvidí v odeslané poště, druhý v přijaté. Když ji ale jeden z nich smaže, tak zmizí oběma. |
||
orava)) Profil * |
#6 · Zasláno: 23. 4. 2008, 19:11:43
TSD
To je hlupost duplikovat spravy kukni ako to mam na webe! TABULKA spravy tam bude toto odosielatel predmet sprava cas prijimatel precitane 0 alebo 1 PRIJATE = vyselectujes vsetky spravy kde prijimatel bude meno ODOSLANE = vyselectujes vsetky spravy kde odsielatel bude meno Precitane bude sluzit na to aby ked si precita tak bude 1 a potom mozes vySELECTovat aj nove spravy |
||
TSD Profil |
#7 · Zasláno: 23. 4. 2008, 19:36:58 · Upravil/a: TSD
orava))
Tvoje řešení ti neberu ani netvrdím, že to moje je jediné možné, ale .. četls můj poslední příspěvek? |
||
Tomashek Profil |
#8 · Zasláno: 23. 4. 2008, 19:45:02
byl by někdo moc hodný a napsal strukturu sql tabulky? ..ja to porad moc dobre nechapu
|
||
TSD Profil |
#9 · Zasláno: 23. 4. 2008, 20:21:35
Popíšu to ještě jednou
Strukturu tabulky mám de facto stejnou jako orava)), jen jsem navíc ještě řešil to, že když zprávu pošleš, tak ji vidí odesilatel v odeslaných a příjemce v přijatých. Když ji jeden z nich smaže, zmizí oběma, což se mně nelíbilo. Takže jsem to řešil tak, že jsem si tam přidal jeden sloupec typu bool a každou zprávu jsem vložil do tabulky dvakrát. Jednou s tím atributem nahozeným a podruhé shozeným. Od okamžiku vložení byla jedna z těch dvou zpráv dostupná odesilateli a druhá příjemci. Výsledek: oba ji vidí a když ji jeden smaže, druhý o ni nepřijde. Pokud je to na tebe moc "materiálu" najednou, tak se na to vykašli a udělej to po oravsku, taky to jde. |
||
Tomashek Profil |
#10 · Zasláno: 23. 4. 2008, 21:05:25
dobre uz to ceklem chapu az na to precitane 0 nebo 1 ..(este jak zaridim cas odeslani ? ..nekde jsem cetl ze fce now() , ale to mi napise 00-00-000 )
|
||
Adam Zábranský Profil |
#11 · Zasláno: 23. 4. 2008, 21:11:35
Tomashek
škoda, nenašel jsem že by funkce existovala můžeš skusit využít funkce date(), jestli ti to postačí. |
||
Tomashek Profil |
#12 · Zasláno: 24. 4. 2008, 00:08:22
ok ...nejak jsem to zprovoznil....jen bych se chtel zeptat jak tedy na to mazani tech zprav....moc jsem to z tim prectenym 0 a 1 nepochopil
|
||
TSD Profil |
#13 · Zasláno: 24. 4. 2008, 03:52:41
Tomashek
Mazání a přečteno jsou dvě věci, které nesouvisí. Tvůj pošťák nerozlišuje nové zprávy od přečtených? |
||
DJ Miky Profil |
#14 · Zasláno: 24. 4. 2008, 10:41:12
TSD
Smazání se dá řešit vytvořením sloupců třeba smazano_prijemce a smazano_odesilatel a nemusí se zpráva ukládat dvakrát. |
||
TSD Profil |
#15 · Zasláno: 24. 4. 2008, 11:09:39
DJ Miky
Ano, taky řešení a vůbec ne špatné. Když jeden smaže, nahodit mu jeho "smazano", když smažou oba, opravdu smazat. |
||
kolemjdoucí Profil * |
#16 · Zasláno: 24. 4. 2008, 21:45:19
nemohli byjste sem někdo přímo napsat ten script i s těmi sql tabulkami? Prosím
|
||
kolemjdoucí Profil * |
#17 · Zasláno: 24. 4. 2008, 22:20:17
mohl by někdo prosím ten script napsat?
|
||
Tomashek Profil |
#18 · Zasláno: 24. 4. 2008, 22:38:33
já to nemám vůbec dodělané..právě se chci zeptat:
posílá to zprávy už celkem v poho, ale chtěl bych udělat tak, že se zobrazí jenom předmět-od koho je zpráva- čas a předmět by byl jako odkaz, na kterém se zobrazí celá zpráva. Myslel jsem, že to jde, ale pak jsem zjistil, že to vypíše jenom první zprávu (do mysql tabulky jsem jeste pridal id_zpravy a pak dal odkaz jakože na tohle id, ale zobrazí se jenom ta první) neví někdo co z tím ? |
||
Akacko Profil |
#19 · Zasláno: 24. 4. 2008, 22:42:22
Adam Zábranský
funkce NOW() je SQL funkce kolemjdoucí Co za to? Jen tak ti to nikdo nenapíše, protože to zabere nějaký ten čas a čas jsou peníze. Když ti jej sem napíšu tak stejně nepochopíš jak to funguje a jak jej zprovoznít a budeš se jen ptát "Jak to funguje?". |
||
Tomashek Profil |
#20 · Zasláno: 24. 4. 2008, 22:49:24
aha :-) ..hej asi se na to mazání opravdu vykaslu. ..vubec nevim jak zacit xD xD
|
||
Medvídek Profil |
#21 · Zasláno: 24. 4. 2008, 22:49:26 · Upravil/a: Medvídek
Tomashek
while($zaznam=mysql_fetch_array($vysledek)): echo "<a href=\"zobraz-zpravu.php?cislo=".$zaznam["id_zpravy"]."\">".$zaznam["p redmet_zpravy"]."</a>"; endwhile; Doufam ze to id_zpravy je jako auto_increment a primary key |
||
TSD Profil |
#22 · Zasláno: 24. 4. 2008, 22:49:53
Tomashek
Píšeš chaoticky. Není jasný kde se ti zobrazuje "jen první" zpráva a navíc bych skoro řekl, že už se blížíš k tomu, co píše Akacko. Komplet poštu pro tebe nikdo zadarmo dělat nebude. Akacko To jsem chtěl napsat já, nepředbíhej :) |
||
Medvídek Profil |
#23 · Zasláno: 24. 4. 2008, 22:52:30
Tomashek
S mazáním problém neni :) buďto updatneš na 0 jeden, nebo druhej sloupec a pokud ten druhej obsahuje taktez 0, tak miso update provedeš DELETE :) |
||
kolemjdoucí Profil * |
#24 · Zasláno: 24. 4. 2008, 22:55:18
nemohl by jste někdo prosím ten script napsat celej, i s těma sql tabulkama, prosím
|
||
Akacko Profil |
#25 · Zasláno: 24. 4. 2008, 22:55:32 · Upravil/a: Akacko
Tomashek
Myslel jsem, že to jde, ale pak jsem zjistil, že to vypíše jenom první zprávu... Kdybys ještě ukázal část kódu, která toto má na starost, hned by se lépe radilo. TSD ;) kolemjdoucí spamem se to nenaučíš/nezískáš |
||
Tomashek Profil |
#26 · Zasláno: 24. 4. 2008, 22:58:02
hej ja normalne neco napisu a za tu dobu nez mi odpisete tak to spravim !! :-D
jsem to vyřešil jednoduše, že mam jakoby akci-přijaté zprávy a v ní mam normalne $id=$_GET['id']; $query = MySQL_Query("SELECT * FROM sz WHERE id='$id'"); a osetrene, ze cist to muze jenom prijimatel-nick uzivatele :-) |
||
Akacko Profil |
#27 · Zasláno: 24. 4. 2008, 23:02:10
Tomashek
ale nemáš ošetřene proti SQL Injection ... $id=intval($_GET['id']); // v pripade ze $_GET['id'] neni cislo bude hodnota promenne 0 $query = MySQL_Query("SELECT * FROM sz WHERE id='$id'"); |
||
Tomashek Profil |
#28 · Zasláno: 24. 4. 2008, 23:36:22
dik
|
||
Tomashek Profil |
#29 · Zasláno: 26. 4. 2008, 17:56:42
pls mohl by mi nekdo pordati s tim mazanim? ...aby se to smazalo jenom tomu, kdo to smaze ( np prijimatel smaze-tak se smaze, ale u odesilatele to zustane) ja fakt neivm jak ...zkousel jsem vsecko a furt mi to neslo :-(
|
||
Časová prodleva: 16 let
|
0