Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Ustawienie kilku kategori dla danego rekordu
mefistofeles
post
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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ć ?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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
Go to the top of the page
+Quote Post
mefistofeles
post
Post #3





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




wydaje mi się że jest to najsensowniejsze wyjście, tak czy tak musisz coś zmienić.
Go to the top of the page
+Quote Post
Kamil Pietrzak
post
Post #5





Grupa: Zarejestrowani
Postów: 213
Pomógł: 10
Dołączył: 7.01.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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 ;>

Ten post edytował Kamil Pietrzak 1.02.2010, 21:19:48
Go to the top of the page
+Quote Post
mefistofeles
post
Post #6





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


no to chyba zdecyduje się na to explode, zobaczymy
co z tego będzie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.
Go to the top of the page
+Quote Post
mefistofeles
post
Post #8





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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ć ?

Ten post edytował mefistofeles 1.02.2010, 23:20:40
Go to the top of the page
+Quote Post
Kamil Pietrzak
post
Post #9





Grupa: Zarejestrowani
Postów: 213
Pomógł: 10
Dołączył: 7.01.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował Kamil Pietrzak 2.02.2010, 00:20:15
Go to the top of the page
+Quote Post
mefistofeles
post
Post #10





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
piotrooo89
post
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a czy w zmiennej category masz tablice?
Go to the top of the page
+Quote Post
mefistofeles
post
Post #12





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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ą ?

Ten post edytował mefistofeles 2.02.2010, 20:10:53
Go to the top of the page
+Quote Post
Kamil Pietrzak
post
Post #13





Grupa: Zarejestrowani
Postów: 213
Pomógł: 10
Dołączył: 7.01.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
mefistofeles
post
Post #14





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował mefistofeles 3.02.2010, 04:40:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 09:05