Autor Zpráva
Jakubnovak
Profil *
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 *
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 *
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 *
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
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
Kde $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
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0