Най-добрия начин за записване на елеенти

Pavkatar

Registered
Здравейте,
как мога да запиша в 1 ред на таблица много елементи. Тоест: примерно имаме таблица със страници и таблица с посетители и искам на всяка страница да запиша всички посетители, който са били на нея, тоест тяхните ИДита от другата таблица, но как да ги запиша и търся после, че да не прави проблеми.

Тоест полето ми трябва да изгрежда по такъв начин:

1,2,3,5654,5654,622,3
като това са идита на посетителите, но въпроса е как да ги разделям, защото сега може да се получи проблем при търсене. Примерно ще търса със LIKE и му задам 10, то ще "хареса" и 100 и 10000 и 101 и т.н.

Дано да сте ме разбрали :)
 
Еми разделяш с explode после един foreach и после във foreacha заявките и мисля, че трябва да стане
 
Защо ще търсиш с LIKE след това?
Няма ли да стане ако директно си зададеш Where id-to=$_GET[id] на потребителя ?
 
Това е идеята:
Имам много страници, в който имам много потребители.

Примерно потребителя с ИД: 152
Е посетил страниците с ИДита: 1,7,56,48,24

НО същевременнто потребител с ИД 900
Е посетил страници с ИДита: 11,17,56,48,234

Тоест и двамата са посетили страници с идита: 56 и 48. И в тези записи е въпраса, как да ги запиша.

Примерно с ",", тоест нещо такова: 152,900 , НО вече немога да търся с WHERE pole='ID', следователно трябва с LIKE, но ако напиша pole LIKE '%900%', то ще ми върне и резулта за: 9000 и 9001 и т.н.

Дано сега да сте ме разбрали :)
 
За всяко посетено - отделен запис. ( правиш си отделна таблица със foreign key id-то )
http://en.wikipedia.org/wiki/Database_normalization
ИЛИ ако толкова искаш да ги записваш в 1 поле ( което е куцо ) е да си сериализираш това поле по подходящ начин ( разделени със запетайка, JSON, XML) и да видиш как ще може да излъжеш заявката да търси.
 
Случайно намерих темата чрез търсачката на форума, не знам дали си намерил решени но мога да ти предложа това:

Записваш в полето:
,2,43,534,23,34,123,

(ид-та на потребители)

А заявката да изглежда:
WHERE idta LIKE '%,20,%'

така ще прихванеш само потребител 20 :)
 
Не знам как е като бързодействие но този израз върши добра работа:

SELECT * FROM table_name WHERE col_name REGEXP '[[:<:]]22[[:>:]]'

В случая търсим 22. Ще изкара резултати при които 22 граничи със символи които не са букви и цифри. Например

22 23 24 - в началото
29 30 22 - в края
аба,22,444
345,22 04

и т.н.

222 - НЕ Е СЪВПАДЕНИЕ
 

Back
Горе