![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam dosc popularny problem. Googluje od 3 dni i nigdzie nie znalazlem konkrenej pomocy. Moze wy mi pomozecie. Pisze system w ktorym moglbym dodawac artykuly z poziomu strony i do kazdego artykulu chcialbym dopisac kategorie. Udalo mi sie dodac i wyswietlic artykuly lecz moge przypisac tylko jedna kategorie do kazdego. Problem w tym ze chcialbym okreslic jeden artykul kilkoma kategoriami. Oto co mi sie udalo napisac: Mam 3 tabele: articles - tu trzymam artykuly i id kategori (niestety tylko jedno i nie mam pomyslu jak zrobic na kilka) categories - tutaj trzymam id kategori i jej nazwe art_cat - tutaj trzymam id artykulu i id kategori i moge wyciagnac informacje o kategori. Problem polega na tym ze dodajac artykul dodaje do tabeli articles i powstaje unikatowe id artykulu i dodajac rekord jednoczesnie do art_cat powstaje unikatowe id artykulu i numer kategori ktory podalem zeby ten artykul przypisac do niej. Nie wiem ja dodac do tego samego id artykulu nastepna kategorie/tag. Prosze jakies pomysly?
I to dziala (nie wiem czy wydajnie czy nie) ale dopisuje mi do bazy artykul i jego kategorie. Nie wiem jednak jak dopisac wiele kategori do jednego artykulu. Jakies pomysly? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przykład
Tabel art: art_id title text Tabela cat: cat_id name Tabela cat_art cat_art_id cat_id art_id |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przykład Tabel art: art_id title text Tabela cat: cat_id name Tabela cat_art cat_art_id cat_id art_id No wlasnie tylko dodajac artykul do tabeli articles - art_id jest automatycznie generowane auto increment. Jak dodac to samo art_id do tabeli cat_art?? I jak za jednym zamachem dodac do tabeli cat_art to samo id kilka razy np mam checkbox z kategoriami i ticknalem 3 kategorie o id np. 1, 2 , 3 I terazz chce dodac dodajac artykul do tabel: articles: art_id 1 cat_art: art_id cat_id 1 / 1 1 / 2 1 / 3 z czego art_id jest generowane automatycznie auto increment. Jakis pomysl? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Musisz operować tablicą. Co do dodawania do bazy, można dodać jednym lub dwoma zapytaniami. W przypadku dwu robisz tak:
Czyli przypisujesz kilka kategorii do jednego artykułu. Zapytanie przy wyświetleniu będzie bardziej skomplikowane:
Co da Ci id kategorii dla wybranego id artykułu... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki ale nie do konca rozumiem
Jak ponizszym zapytaniem mam dodac takie samo art_id do tabeli artykuly i art_cat jednoczesnie?
skoro w formularzu nie podaje art_id tylko jest generowane automatycznie? Siedze juz nad tym tyle ze wszystko mi sie miesza ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
No pisałem, że dwoma... a to jest wrzucenie kategorii przecież.
I również pisałem, że musisz operować na tablicy, czyli z formularza musi pójść tablica kategorii. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj sobie w google o relacji wiele do wielu, jeden do wielu i jeden do jednego. Ta teoria na pewno Ci się przyda i wyjdziesz na tym lepiej niż gdybyśmy Ci podali rozwiązanie na tacy.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki panowie wracam w takim razie do googlowania. Poczytam o dzialaniach na tablicach, relacjach bazodanowych. I jezeli cos uda mi sie wymyslic to wroce.
Dobra troche poczytalem i moze uda mi sie to jasniej pojac. Ponizsze zapytanie pobierze z formularza numery id kategori do ktorych chce przypisac artykul.
Pozostaje mi tylko jeden problem. Jak pobrac $numer podana przez Ciebie czyli id artykulu ktory dodaje i do ktorego beda kategorie dopisywane. Jakis pomysl? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
No przecież musisz dopasować ten kod do swoich wymagać. To tylko przykład. jak dodajesz artykuł, to masz jego ID. Tak samo, jak wyświetlasz, również posługujesz się ID...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Tak tylko kiedy dodaje artykul do tabeli artykuly powstaje jego id generowanie automatycznie auto_incrementem.
W tym samym czasie chce dodac to samo id do tabeli art_cat ale musze miec pewnosc ze jest to dokladnie takie samo id jak dodane do artykuly... |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
No to jak dodajesz do art_cat to przekazujesz to art_id i ono Ci się już drugi raz nie zwiększy. Kolumna art_id w tabeli art_cat NIE JEST autoinkrementowana.
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Tak tylko kiedy dodaje artykul do tabeli artykuly powstaje jego id generowanie automatycznie auto_incrementem. W tym samym czasie chce dodac to samo id do tabeli art_cat ale musze miec pewnosc ze jest to dokladnie takie samo id jak dodane do artykuly... Masz rację. Przed dodaniem artykułu nie wiesz, jaki on przyjmie ID, więc masz dwa wyjścia: albo pobrać przed dodaniem artykułu numer ID, albo pobrać po dodaniu artykułu... Pierwsze rozwiązanie wydaje się łatwiejsze. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Matii:
No to jak dodajesz do art_cat to przekazujesz to art_id i ono Ci się już drugi raz nie zwiększy. Kolumna art_id w tabeli art_cat NIE JEST autoinkrementowana W jaki sposob przekazuje art_id z tabeli Artykuly do tabeli art_cat? Musze je najpierw pobrac tak? tylko w jaki sposob? przeszukac baze i pobrac ID ostatnio dodanego artykulu? Kshyhoo Masz rację. Przed dodaniem artykułu nie wiesz, jaki on przyjmie ID, więc masz dwa wyjścia: albo pobrać przed dodaniem artykułu numer ID, albo pobrać po dodaniu artykułu... Pierwsze rozwiązanie wydaje się łatwiejsze. Pobieram id przed dodaniem artykulu czyli przeszukuje baze i pobieram ostatanie ID po czym dodaje do tego +1 i mam ID artykulu ktorego chce dodac?? Sorry panowie to pewnie lamerskie pytania ale ciagle sie ucze.... A w ksiazkach wszystkiego nie ma (pewnie jest ale nie idzie wszystkiego polaczyc w calosc) dlatego poszukuje pomocy u doswiadczonych programistow. Jakies pomysly? |
|
|
![]()
Post
#15
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
No ale chyba nie chcesz gotowca? Masz wszystko wytłumaczone. Działaj a z błędami wracaj - taka przecież zasada na Forum...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ktoś wyżej podał Ci funkcję do last inserted id, więc nie powinien to już być problem
![]() |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dobra juz jestem blizej niz dalej.
Mam teraz problem z petla foreach... Ta sama petla dziala mi na innym skrypcie jednak w tym dostaje blad.
A tutaj caly kod. Formularz:
I funkcje dodajace artykul (artykul dodaje bez problemu do tabeli articles) jednak druga funkcja nie dodaje do art_cat tabeli..
Dziwne bo po wyslanu formularza dostaje komunikaty: dodano artykul ( ! ) Warning: Invalid argument supplied for foreach() in C:\wamp\www\bakehouse01\config.php on line 186 Call Stack # Time Memory Function Location 1 0.0009 250384 {main}( ) ..\add_article.php:0 2 0.0225 289352 add_article( ) ..\add_article.php:7 ale mimo to dostaje komunikat ponizszy: udalo sie dodac do art_cat a tabela nadal pusta. Jakis pomysl co robie zle?? |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie: name="cat_id"
a: name="cat_id[]" Czemu dla was jest takim problemem zrobic: print_r($_POST); ? Czemu uwazacie ze piszecie bezblednie? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 4.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
nospor nie twierdze ze pisze bezblednie, gdyby tak bylo nie prosil bym o pomoc.
Dzieki wielkie. Teraz mam troszke inny problem. Mam np 3 pola na wpisanie kategori, lecz chce uzupelnic tylko 2. Niestety moj skrypt doda i pole ktorego nie uzupelnilem z wartoscia zerowa. Jak tego uniknac? Myslisz ze jak to zrobie np z checkboxami to to pomoze? |
|
|
![]()
Post
#20
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Daj SELECT-OPTION z multi-wyborem...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:41 |