Autor | Zpráva | ||
---|---|---|---|
asusák Profil * |
Udělal sem si script na soukromé zprávy zapisuje se to do databáze tam jsou sloupce: ID (id zprávy) od (od koho byla zpráva odeslána) pro (pro koho je zpráva) nadpis a zpráva. No a já bych když si dám na hlavní stránce vypsat kolik tam mám zpráv podle sloupce pro, Tak se mi zobrazí všechny zprávy i když je mám už přečtený a mě vůbec nenapadá jak to udělat aby se to po přečtení už nezobrazovalo.
|
||
Jimmy Hayek Profil |
#2 · Zasláno: 8. 8. 2009, 21:03:12
asusák
Co třeba přidat ještě jeden sloupec, kde bude uložen stav — třeba N (nepřečteno) nebo P (přečteno) a podle toho vypsat zprávy? |
||
asusák Profil * |
#3 · Zasláno: 8. 8. 2009, 21:09:06
No jenomže když tam vložím tenhle sloupec tak by se nevím jak bych definoval podmínku že když ten sloupec =p tak se vypíše 0. Tady mám výpis kolik tam je zpráv.
$sz = mysql_query("SELECT * FROM sz where pro = '".$_SESSION['UserId']."'"); $pocet = mysql_num_rows($sz); |
||
fandaa Profil |
#4 · Zasláno: 8. 8. 2009, 21:10:46
asusák
Použij WHERE. |
||
Jimmy Hayek Profil |
#5 · Zasláno: 8. 8. 2009, 21:18:19
asusák
„nevím prostě jak na tu podmínku...“ Vždyť už tam jednu podmínku máš (where) :-) Takže nějak takto: $sz = mysql_query("SELECT * FROM sz WHERE pro = '".$_SESSION['UserId']."' AND stav = 'N'"); $pocet = mysql_num_rows($sz); |
||
asusák Profil * |
#6 · Zasláno: 8. 8. 2009, 21:29:17
aha tohle mě nenapadlo. díky moc
|
||
Alphard Profil |
#7 · Zasláno: 8. 8. 2009, 21:55:40
Jestli ty zprávy nechcete následně vypsat, tak je počítejte takhle:
$pocet = mysql_result (mysql_query("SELECT count(*) FROM sz WHERE pro = '".$_SESSION['UserId']."' AND stav = 'N'"), 0, 0); |
||
Anonym Profil * |
#8 · Zasláno: 9. 8. 2009, 21:09:24
Alphard
Proč? Je to rychlejší? |
||
Alphard Profil |
#9 · Zasláno: 9. 8. 2009, 21:22:24
Anonym:
„Proč? Je to rychlejší?“ Ano. A také méně zatěžující. Databáze snadno spočítá řádky a vrátí jediné číslo. Předchozí špatný postup vyžaduje vrácení všech záznamů (a všech sloupců) do PHP a tam se teprve počítají. |
||
Časová prodleva: 15 let
|
0