Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Ustawienie kilku kategori dla danego rekordu
Forum PHP.pl > Forum > Przedszkole
mefistofeles
Mam stronę z filmikami. Z założenia każdy miał należeć do konkretnej, tylko 1
kategorii np. zabawne, ekstremalne, itp.
Kategorie filmu identyfikowało jej id w tabeli 'filmiki'.
No i teraz mam problem jak najprościej zmodyfikować wszystko tak,
aby można było ustawić kila kategorii, no bo przecież do jednego pola nie wpisze kilku id kategorii.
Tworzyć w takim razie osobne pola dla każdej kategorii w tabeli filmiki ?
A może rzeczywiście wpisywać no, po spacji kolejne id kategorii a potem to dzielić za pomocą explode ?
Jak to najsensowniej zrobić ?
piotrooo89
stworzyć osobną tabele może ona wyglądać tak: ID, ID_kategori, ID_filmu. i teraz dla filmu 1 masz a i b kategorii o id odpowiednio 1 i 2, więc dane w tabeli wyglądają tak:
ID | ID_kategori | ID_filmu
1 | 1 | 1
2 | 2 | 1
mefistofeles
No tak tylko mam już dosyć zbudowany skrypt i musiał bym go mocno bardzo
modyfikować żeby korzystał z kolejnej tabeli itp.

Chciałbym po prostu jak najprostszym sposobem uzyskać możliwość dodania
nowej kategorii bez konieczności tworzenia nowych tabel.
piotrooo89
wydaje mi się że jest to najsensowniejsze wyjście, tak czy tak musisz coś zmienić.
Kamil Pietrzak
a dlaczego nie explode ?
dosc wygodne, z tego co sie orientuje to wcale az tak ciezkie dla skryptu nie jest, tylko zbudowac ladna petle i gotowe
latwo zbudowac, latwe w pozniejszej edycji kategorii, tylko wypisac kilka numerkow po przecinku do pola tekstowego, czy cos

z reszta... zdaje sie, ze juz tak na prawde wybrales ;>
mefistofeles
no to chyba zdecyduje się na to explode, zobaczymy
co z tego będzie smile.gif
piotrooo89
dlaczego nie explode? bo jest to mało bazodanowe i to powinno Ci (mi, nam) wystarczyć. raz popełniłem ten błąd i wpisałem tak dane. stworzenie raportów do takich danych było chorobą nie z tej ziemi. robienie czegoś co jest złe chyba raczej nie ma sensu.
mefistofeles
Na początek próbuje na szybko z explode, ale mam problem z dodaniem kilku wartości do bazy:

  1. <select name='category' multiple='multiple'>";
  2.  
  3. echo "<option value='1' class='pole'>A</option>";
  4. echo "<option value='2' class='pole'>B</option>";
  5. echo "<option value='3' class='pole'>C</option>";
  6.  
  7. echo "</select>




  1. if (!mysql_query('insert into filmiczki (`added`, `typ`, `src`, `miniaturka`, `tytul`, `opis`, `ocena`, `counter`, `category`, `login`) values ('.time().', '.$typ.', "'.$sciezka.'", "'.$miniaturka.'", "'.mysql_value($_POST['tytul']).'", "'.mysql_value($_POST['opis']).'", 0, 0, '.$_POST['category'].', "'.$_SESSION['login'].'")'))


Na liście za pomocą CTRL zaznaczam kilka kategorii, ale do bazy zostaje dodane tylko id ostatniej zaznaczonej, tabela jest typy TEXT(20).

Jak dodać wszystkie idiki kategorii a nie tylko ten ostatni ?
Trzeba jakąś pętle zrobić ?
Kamil Pietrzak
po 1 to troche ogarnij skrypt
jakis cms kupiles/sciagnales ? co to za system z ktorym pracujesz ? moze sam go napisales ?

po 2 wystarczylo wpisac do googla
http://www.google.pl/search?q=select+multi...lient=firefox-a

PS: nie TEXT tylko CHAR/VARCHAR bardziej pasuje

PS: piotrooo89, zagioles mnie pojeciem... zaraz doczytam winksmiley.jpg
mefistofeles
Tą stronę odwiedziłem jako pierwszą, ale mimo że:

$category=$_POST['category'];
if ($category){
foreach ($category as $kat){echo 'Kategoria:',$kat,'<br />';}
}

To skrypt wywala mi:

Invalid argument supplied for foreach() in /kopia/add_vd.php

Mimo iż
echo $category; wyświetla normalnie id kategorii, więc nie jest pusta
piotrooo89
a czy w zmiennej category masz tablice?
mefistofeles
No właśnie chyba nie za bardzo :/
Ale dlaczego, zrobiłem wszystko jak w przykładzie, moja lista wyboru wygląda tak:


  1. <select name='category[]' multiple='multiple'>";
  2.  
  3. echo "<option value='0' class='pole'>A</option>";
  4. echo "<option value='8' class='pole'>B</option>";
  5. echo "<option value='21' class='pole'>C</option>";
  6.  
  7.  
  8. echo "</select>



Nie wiem dlaczego zmienna $_POST['category'] nie jest tablicą ?
Kamil Pietrzak
probowales wyciagac $_POST['category'] kilka razy ?

tutaj tez cos znalazlem
http://www.daniweb.com/forums/post96727.html#post96727

zastosowanie nawiasow kwadratowych w innym miejscu
warto tez czasem cos zerznac...
jak znasz strone gdzie takie cos jest to zajrzyj w kod

to taki post ala wujek superrada biggrin.gif
mefistofeles
No już coś zaczęło mi działać -> wyświetla kolejne wybrane przeze mnie id, ale nie chce icj dodać ich do bazy!


// EDIT - Po kilku modyfikacjach wszystko ładnie dodaje

Thanks smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.