Autor Zpráva
Tomashek
Profil
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
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
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
TSD
Moc teda nechapu proc duplicitni zpravy a na co je tam to "LeziUOdesilatele".
TSD
Profil
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 *
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
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
byl by někdo moc hodný a napsal strukturu sql tabulky? ..ja to porad moc dobre nechapu
TSD
Profil
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
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
Tomashek
škoda, nenašel jsem že by funkce existovala
můžeš skusit využít funkce date(), jestli ti to postačí.
Tomashek
Profil
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
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
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
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 *
nemohli byjste sem někdo přímo napsat ten script i s těmi sql tabulkami? Prosím
kolemjdoucí
Profil *
mohl by někdo prosím ten script napsat?
Tomashek
Profil
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
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
aha :-) ..hej asi se na to mazání opravdu vykaslu. ..vubec nevim jak zacit xD xD
Medvídek
Profil
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
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
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 *
nemohl by jste někdo prosím ten script napsat celej, i s těma sql tabulkama, prosím
Akacko
Profil
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
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
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
dik
Tomashek
Profil
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 :-(

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0