$db->query(sprintf("UPDATE albums_lists SET photos_list = %s WHERE id = %s", secure($photo_id), secure($id) )) or _error("SQL_ERROR_THROWEN");
Incerc sa adaug in albums_lists in coloana photos_list valoarea lui $photo_id dar nu vreau sa sterg valorile deja existente. $photo_id contine intotdeauna o singura valoare (exemplu 15)
in photos_list vreau sa stochez valorile in modul acesta: 10,15,2 dar nu vreau sa se repete.
Eu cred că ai o structură a bazei de date greșită, în care legi id-ul imaginilor de albume. Ce se întâmplă cu un album atunci când ștergi o imagine?
Ai două variante:
one to many
Situația asta este OK atunci când ești absolut sigur că o imagine poate fi într-un singur album. Altfel spus, ai albumul (one) și imaginile (many).
Pentru a face treaba asta, la imagini adaugi o coloană extra (e.g. album) și de fiecare dată când vrei să afișezi imaginile dintr-un album, faci ceva de genul: SELECT * from photos_list WHERE album = 10
many to many
A doua variantă este când o imagine poate fi în mai multe albume (și, evident, un album poate avea mai multe imagini)
Pentru asta ai nevoie de un tabel extra (se numește tabel pivot) și are o structură de forma:
photo_id
album_id
Să-i zicem photo_album_pivot .
Ca să afișezi imaginile dintr-un album trebuie să înțelegi un pic cum funcționează JOIN în SQL Uite un exemplu de query:
select photo.id, photo.username, album.name
from photos photo
left join photo_album_pivot p on photo.id = p.photo_id
left join albums_list album on p.album_id = album.id
where album.id = 10