Autor | Zpráva | ||
---|---|---|---|
Jakubnovak Profil * |
#1 · Zasláno: 29. 9. 2011, 16:27:16
Zdravím,
mám v db tyto záznamy: 1-5-6-128-546-45-56-75 Čísla jsou id uživatelů a pomlčky je oddělují. Jak je možní čísla od pomlček oddělit a zjistit, jestli se nerovnají id uživatele? Např. uživatel má id 546, takže se rovná. |
||
her-ur Profil * |
#2 · Zasláno: 29. 9. 2011, 16:49:35
Např.
$ids = '1-5-6-128-546-45-56-75'; $pole = explode('-', $ids); A pak už můžes to pole projít třeba pomocí foreach Ale spíš bych se zamyslel nad návrhem databáze. Tohle nevypadá dobře. |
||
Jakubnovak Profil * |
#3 · Zasláno: 29. 9. 2011, 16:57:05
Jak to tedy jinak udělat? Mám fórum a u každého příspěvku mám sloupec přečteno, kde se zapisují id uživatelů, kteří příspěvek přečetli. Pokud ho nepřečetli, zobrazí se, že je ve fóru nový příspěvek
|
||
okolojdouci Profil * |
#4 · Zasláno: 29. 9. 2011, 16:59:29
Jakubnovak:
Vyrob si novou tabulku a do ní zapisuj dvojice IDclanku, IDuzivatele. A ano, bude to znamenat více řádků. A ne, ničemu to nevadí, naopak. |
||
Majkl578 Profil |
#5 · Zasláno: 30. 9. 2011, 01:30:22
Jakubnovak:
„Mám fórum a u každého příspěvku mám sloupec přečteno, kde se zapisují id uživatelů, kteří příspěvek přečetli.“ To bys měl řešit pomocí M:N relace (skrze 3. tabulku), jak říká okolojdouci. Pak se jednoduše dotážeš jedním SQL dotazem: SELECT 1 FROM prispevky_precteni WHERE userId = $userId AND postId = $postId $userId bude ID uživatele a $postId ID příspěvku.
Pokud bys to výslovně chtěl nechat tak jak to máš, pak v PHP můžeš použít toto: if (in_array($userId, explode('-', $ids)) { // již navštívil } |
||
Časová prodleva: 13 let
|
0