webForumDet fria alternativet

SELECT LIKE med siffror?

5 svar · 182 visningar · startad av Neo

NeoMedlem sedan dec. 200079 inlägg
#1

Hej!

Jag har lite problem med en SELECT LIKE...

Kod:
--------------------------------
$sqlkal = "SELECT * from icalender WHERE filer LIKE '%$peopleid%' AND WEEK(datum,1) = WEEK(now(),1) ORDER by datum ASC";

Fältet filer ser ut t ex så här:
1,14,5

Jag skickar med $peopleid i query-stringen:

calender.php?peopleid=1

Då vill jag ha alla poster där 1 är med i fältet filer...

Detta funkar på text men verkar inte funka på siffror, eller?

// Neo

------------------
I´m your poweranimal, start sliding!

LarsGMedlem sedan dec. 200012 464 inlägg
#2

jag tycker att du borde ändra din datamodell och inte Lagra inte flera värden i samma kolumn. Det blir bara problem. Lagra varje värde som en egen post och om det är numeriska värden använd typen integer så kan du använda vanliga jämförelser.

------------------
essentitia preter non sans multiplicandum

NeoMedlem sedan dec. 200079 inlägg
#3

Hej LarsG!

Så du säger att det inte finns någon bra lösning så som det ser ut nu...?

Anledningen till att det ser ut som det gör är att jag adderar flera personer med id till samma post, sen när jag visar dem så kör jag en explode och hämtar personerna på id från en annan tabell.

Har du något bättre förslag?

// Neo

------------------
I´m your poweranimal, start sliding!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Ja det går väl att skriva något sofistikerat regular expression men det måste då anpassas beroende på vilket tal man söker.

T.ex om du har 14,22 i en post så vill du inte ha träff om du söker efter 1.

En sådan sökning blir inte speciellt effektiv då det inte går att använda index.

Om du lagrar varje id för sig så behöver du inte använda explode heller utan du kan joina tabellerna direkt i SQL-satsen. (Det är det som är hela vitsen med relationsdatabaser ;))

------------------
essentitia preter non sans multiplicandum

NeoMedlem sedan dec. 200079 inlägg
#5

Hej igen LarsG!
(ursäkta att jag är jobbig idag)

Okej, så om min INSERT ser ut så här:
--------------------------------
$sql = "INSERT INTO icalender (datum,datumcheck,ar,manad,dag,starth,startm,sluth,slutm,plats,arende,filer,antal,onskemal) VALUES ('$datetime','$datetimecheck','$ar','$manad','$dag','$starth','$startm','$sluth','$slutm','$plats','$arende','$filer','$antal','$onskemal')";
$result = mysql_query($sql);
--------------------------------
så borde jag kunna använda:

$getid = mysql_insert_id();

och sen INSERTA alla siffror i filer-variabeln i en annan tabell med rätt id... eller hur skulle det se ut???

(jag har hållt på sen 7 i morse så jag är lite trött...)

// Neo

------------------
I´m your poweranimal, start sliding!

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Jo, precis så att du plockar upp nyckelvärdet och använder det när du gör insert(ar) i din andra tabell.

------------------
essentitia preter non sans multiplicandum

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)