Hent, læs og indsæt array i database.

Tags:    php mysql array

Hej udviklere!

Jeg har nu siddet det mest ef aftenen og arbejdet på en Like funktion..

Her er min situation:

Jeg ser på et billede.. Billedet er fedt.. Og jeg trykker Like.


I min database har jeg ID, Billed_ID, User_ID, Like, Views.

User_ID skal indholde ID'et på alle de brugere som har trykket Like.


Jeg har læst lidt på en funktion der hedder serialize og unserialize. Til ligesom at samle det hele.. Sådan at indholdet kommer til at være: 1;2;3;4;5.
Men det virker ikke!

Mit problem er faktisk at jeg ikke ved hvad der kommer ud af databasen?

Til at starte med er der ikke noget User_ID.. For der er der nemlig aldrig blevet trykket Like.. Så det jo ganske simpelt bare at smide det første ID ind..

Men hvad så bagefter?

Jeg skal jo hente ID'et ud, og tjekke om brugeren allerede HAR trykket Like..

Og hvis ikke, så skal brugeren have lov til at trykke Like.. Og så få sat sit ID ind i databasen, til alle de andre ID'er..


Jeg er på bar bund nu!




3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Har jeg forstået det sådan at du har en tabel, som indeholder en post der hedder user_id. Denne post opdaterer du så til hver gang at indeholde et nyt bruger id samtidig med at det skulle have de gamle. Som f.eks. 1;2;3;4;5; osv.

Hvis dette er tilfældet er det en god ide at udnytte at mysql er en relationel database. Du kan altså dele det op i tre tabeller, dine to normale tabeller, og et key table, da vi har at gøre med en mange til mange relation.

tabel image
- image_id (Primær Nøgle)
- likes
- views

tabel user
- user_id (Primær Nøgle)
- .. (felter udeladt til at kunne indeholde andre data du ønsker om dine brugere)

Du kan lave tabellerne med SQL således
Fold kodeboks ind/udSQL kode 

Sådan, nu har vi de tre tabeller. Du kan nu indsætte data, ved at insætte data i vores key table. hver gang der likes på et billede af en bruger. Lad os sige at bruger med ID 1 gerne vil like et billede som har ID nummer 45. Vi kan så med SQL indsætte data sådan her
Fold kodeboks ind/udSQL kode 

Vi har nu lavet en relation imellem bruger med id 1, og billedet med id 45. Du kan selvfølgelig selv lave restriktioner i din kode, som først tjekker om brugeren har trykket like på dette billede, og hvis dette er tilfældet, så skal han måske ikke kunne like det en gang til.

Måden du får fat i dataene imellem dine to tabeller er således.
Fold kodeboks ind/udSQL kode 


Håber at dette hjalp dig videre :)



Mange tak Martin!
Du har forstået det helt rigtigt!

Jeg har aldrig prøvet at arbejde med en key table før.. Så det skal jeg lige ha læst lidt om.. Men det lyder meget fornuftigt!

Så med denne metode vil jeg ved siden af billedet kunne vise hvor mange Likes billedet har? - Og hvis der trykkes, vil jeg kunne vise hvilke brugere der har Liket? (Her plejer jeg at ta user_id fra min tabel, og matche det med min User tabel, hvor jeg skriver user_id = ID, og henter Username.. Da brugerne kan skifte brugernavn så tit de ønsker..)

Skal lige til en fototur, så når ikke at få testet koden af idag.. Men måske søndag aften! :D



Jeg er glad for at kunne hjælpe, og spørg endelig hvis du har flere problemer.

Husk endelig at give point, hvis svaret hjælp dig også :)



t