Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan lehet ezt? Többi lent

Hogyan lehet ezt? Többi lent

Figyelt kérdés

Szeretnék egy olyan dolgot csinálni, hogy van egy user akinek van bann_id és bann_time az accounthoz csatolva.


Ha lejár a bann time eltünik a bann, ez oké, de ha nekem van pl. 6 bann fajtám. Maga a mysql bann_id egy varchar(12). Az accountra több ban fajtát lehet egyszerre hozza csatolni amit így ment az adatbázisba:


1;2;3;4....


Az kéne nekem hogy a PHP mikor megkapja ezt, akkor felismeri hogy az 1 az pl. chat bann a 2 az nemtudom... stb. Hogyan leeht azt hogy minden ; után más parancsra nézzen rá, nemtudom menyire érthető :(


Itt egy példa hátha így jobban érthető lessz.


Van a user akinek van a bann_id ben: 1;5;9

1 = chat bann

5 = login bann

9 = valami...


Ha akarok a chatbe írni megnézi a php hogy a bann_id üres e. Ha nem megkeresi az 1 számot, ha nem talál engedi használni ha talál akkor nem, vagy ugyan ez bejelentkezésnél, ha talál 5 számot, akkor nem engedi.


Hogyan leeht legjobban ezt elérni ?

Köszi


2018. dec. 5. 15:44
 1/7 A kérdező kommentje:

Akit érdekel a válasz, megtaláltam szóval bocsi a kérdést :D


$szoveg = ";1;2;15;16";

$array = explode(";", $szoveg);

array_search(1, $array); -> ez megnézi létezik e az "1" szám, ha igen vissza kapod a pozícióját az "array"-ben.


Ha ezt felhasználod így:

$valami = array_search(1, $array);

if (!empty($valami)){

// Létezik az 1 szám

}

2018. dec. 5. 16:12
 2/7 anonim ***** válasza:
Szép igényes adatbázis séma.
2018. dec. 5. 16:22
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
Ha ezt gúnynak gondolod, akkor azért írtam enyit, mert nem akartam full az egeszt táblázat sémá-t leírni ide...
2018. dec. 5. 20:53
 4/7 anonim ***** válasza:

Akkor gúnyolódás nélkül:

Ilyet, hogy "Van a user akinek van a bann_id ben: 1;5;9" nem csinálunk, mert már az 1-es normál formát is nagyon durván sérti.

[link]

2018. dec. 5. 21:44
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
Felejtsük már el, hogy két "n"-el írjuk a "ban"-t, nem tudom melyik hülye találta ki.
2018. dec. 7. 12:50
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

Nem az ő válasza a GÚNY, hanem a te adatbázis sémád a GÁNY.


Tessék külön táblában tárolni a banokat (egy n-nel), két oszlop elég: user_id, ban_type. Ennyi.

2018. dec. 7. 14:50
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

Szia! Nem leszólásból mondom, mert azért van az oldal, hogy tanulj. A többiek azért hivatkoztak a normál formákra, mert azokat egy relációs adatbázisnál nagyon fontos lenne betartani. Pl. nem kellene php script-ben végig splitelni, gyorsabb lenne a lekérdezés, könnyebben lehetne alprogramokat írni stb. Tehát tényleg szebb lenne, ha átterveznéd a táblát (akár több táblában is, ekkor simán JOIN-olhatsz/allekérdezés/ha csak 2 tábla akkor where-ben a feltétel).


Mutatok is egy példát. Felhívom a figyelmedet, hogy biztosan van sokkal jobb megoldás is ennél, de azt gondolom, kiindulásnak már meglehet próbálni;


Például létrehozol egy táblát, amiben eltárolod, hogy kinek milyen banja van. Mondjuk user_id, ban_id, datum, kitol_kapta_id stb. attribútumokkal (azért külön tábla, mert lehet, hogy valakinek van 5 féle banja). Ha csak 1 féle ban-t kaphat, akkor a usertáblába létrehozol egy új attribútumot (oszlopot), hogy "ban_id".

Esetleg külön tábla, hogy "bannok". Ide "ban_id", "leíras", stb....

Ezeket meg majd lekérdezésnél join-olod "ban_id" alapján. Ez abból a szempontból is jó, hogy megtudod nézni, kinek van banja/kinek nincs/ha törli magát a ban megmarad stb....


Remélem tudtam segíteni, ha esetleg segítségre van szükséged, írd meg itt is nyugodtan.

2018. dec. 8. 19:03
Hasznos számodra ez a válasz?

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!