---
title: "Spara och söka array i databas?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/189625-spara-och-söka-array-i-databas"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "bassebhu"
published: "2012-04-17T15:12:57.000Z"
updated: "2012-04-22T19:14:50.000Z"
replies: 9
views: 1236
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/189625-spara-och-söka-array-i-databas"
---

# Spara och söka array i databas?

## #1 — bassebhu, 2012-04-17T15:12Z

Hallå!

Detta är en kombinerad PHP/MySQL-fråga. Jag vill att en post ska kunna sparas med 8 checkboxar som kan mixas hur som helst. Jag skulle kunna ha ett fält för varje checkbox, men i stället tänker jag mig att det är smartare att ha ett enda fält och spara värdena där. Checkboxarna ska bara ge 0 eller 1 alt. true/false.

Hur är detta smartast att göra? Spara värdena med semikolon emellan?
Typ: 0;1;1;0;0;1;0;1 eller false;true;true;false;false;true;false;true ?

Därefter vill jag kunna söka i databasen och hitta poster med önskade checkboxkombinationer, men det kanske är en senare sql-fråga och ev. php-fråga för att extrahera värdena.

Ja, koden kan jag förhoppningsvis komma på själv, men hur bör jag tänka?

Tack!

Permalänk: https://www.webforum.nu/p/189625

## #2 — metalboy, 2012-04-17T15:24Z

Det smarta är att ha ett fält per checkbox. Jag lovar. Du kommer bara ge dig själv en massa huvudbry annars  :)

Permalänk: https://www.webforum.nu/p/2297671

## #3 — bassebhu, 2012-04-17T15:41Z

hehe ok, och det är inte dumt med åtta nya fält för 30 000 poster?
Om det kommer till 20 checkboxar till sen, är det fortfarande bästa lösningen?
Det kommer inte att hända, men det känns ganska odynamiskt med fasta fält för detta.

Jag frågar, för jag vet inte  :)

Permalänk: https://www.webforum.nu/p/2297672

## #4 — walter groupius, 2012-04-19T22:36Z

Det smartaste är att spara värdena i en array, och sedan använda sig av serialize och unserialize på datat.

Då blir det enkelt att hantera och expandera, då du kan döpa boxarna till unika idn, ta bort gammal och bibehålla index, osv.

Ska du gära som du säger så kan du lika gärna skita i separator tecken? du vet ju vilket binärt tecken som är vilken box. 

svaret är alltså inte
0;1;1;0;0;1;0;1
utan
01100101  

Ville du kunna söka på det så skulle jag köra på den sista varianten med. Det har även fördelen att kunna sparas som int, istället för mindre bra varchar eller dylikt i mysql.

:)

Permalänk: https://www.webforum.nu/p/2297766

## #5 — casca, 2012-04-20T15:36Z

> **[walter groupius skrev:](https://www.webforum.nu/p/1549853)**
>
> Ville du kunna söka på det så skulle jag köra på den sista varianten med. Det har även fördelen att kunna sparas som int, istället för mindre bra varchar eller dylikt i mysql.
> 
> :)

 Lite OT, men det här är väl ingen bra idé? INT lagrar heltal, alltså kommer "0101" att sparas som "101".

Permalänk: https://www.webforum.nu/p/2297775

## #6 — walter groupius, 2012-04-20T17:03Z

> **[casca skrev:](https://www.webforum.nu/p/1549863)**
>
> Lite OT, men det här är väl ingen bra idé? INT lagrar heltal, alltså kommer "0101" att sparas som "101".

Just fan  :birp  ..  v

Vill man gå över ån efter vatten eller nåt i den stilen så kan man ju alltid se till att börja med en siffra utan att den har något värde.

Hursomhelst så lär det ju bli effektivt nog oavsett typ av tabell nästan :)

Permalänk: https://www.webforum.nu/p/2297779

## #7 — Forsberg, 2012-04-22T08:11Z

Som walter_groupis skrev så är det bästa att använda arrays till detta:

{'cbox1':true,'cbox2':false} osv osv...

Permalänk: https://www.webforum.nu/p/2297790

## #8 — bassebhu, 2012-04-22T11:40Z

> **[Forsberg skrev:](https://www.webforum.nu/p/1549886)**
>
> Som walter_groupis skrev så är det bästa att använda arrays till detta:
> 
> {'cbox1':true,'cbox2':false} osv osv...

Ok, tack! Hur kan en SQL-fråga se ut om jag vill hämta ut alla poster där cbox2 = false då?

Permalänk: https://www.webforum.nu/p/2297798

## #9 — casca, 2012-04-22T12:17Z

> **[bassebhu skrev:](https://www.webforum.nu/p/1549897)**
>
> Ok, tack! Hur kan en SQL-fråga se ut om jag vill hämta ut alla poster där cbox2 = false då?

 Det finns ju "wildcards" i SQL-syntaxen, som "\_". Så om du har åtta värden, t.ex. 00000001 och vill hämta någon med sista värdet satt:

SELECT \* FROM usertable WHERE options LIKE '\_ \_ \_ \_ \_ \_ \_1'

(Utan mellanrum dock).

Permalänk: https://www.webforum.nu/p/2297799

## #10 — aasah, 2012-04-22T19:14Z

Beroende på vad dina åtta checkboxar har för funktion kan ett bra alternativ vara att lagra resultatet i **ett** heltal m.h.a. bitprogrammering, så länge du har högst 32 checkboxar. Se [ett gammalt inlägg](http://www.webforum.nu/showthread.php?p=1393469#post1393469) för ett exempel.

Permalänk: https://www.webforum.nu/p/2297806

---

Tråden på webben: https://www.webforum.nu/amne/php/189625-spara-och-söka-array-i-databas
