![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 1.07.2010 Ostrzeżenie: (20%) ![]() ![]() |
Witam
Mam pewną funkcję, która dodaje do tabeli nowy rekord (złożony z trzech pól) przy każdym wywołaniu:
No i teraz chciałbym napisać funkcję, która usuwa rekord po podanym id_produktu:
Czytałem że array_slice i array_merge może pomóc, ale nie bardzo wiem jak ich użyć. Druga zagadka jaką mam do rozwiązania to jak przenieść zawartość tej tablicy do tabeli SQLowej o strukturze: id (primary key), id_produktu, nazwa, cena. Pewnie trzeba będzie użyć foreacha. Błagam o pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 15 Dołączył: 1.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Funkcja dodaj_do_koszyka() nie jest od dodawania, ale od wyznaczania (wybierania).
Nie powiesz mi chyba, że na google nie było usuwania rekordu z bazy. http://webmade.org/kursy-online/usuwanie-r...-kurs-mysql.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 1.07.2010 Ostrzeżenie: (20%) ![]() ![]() |
Funkcja dodaj_do_koszyka() nie jest od dodawania, ale od wyznaczania (wybierania). Nie powiesz mi chyba, że na google nie było usuwania rekordu z bazy. http://webmade.org/kursy-online/usuwanie-r...-kurs-mysql.php Heh, trochę źle mnie zrozumiałeś. Mi nie chodzi o usuwanie rekordu z tabeli w bazie MySQL tylko o usunięcie rekordu ze zwykłej, phpowej tablicy. Dodajmy, że z tablicy, która przechowuje inne tablice o 3ch polach (id, nazwa, cena). I pytanie jak usunąć ten rekord, którego znamy id. Ten post edytował Skaras 1.07.2010, 22:48:27 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A zaglądałeś kiedyś do unset?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 1.07.2010 Ostrzeżenie: (20%) ![]() ![]() |
A mógłbyś pomóc z tym unsetem po danym id? Jestem raczej noga z tablic phpowych i na unset patrzyłem, ale nie bardzo wiem jak użyć tego w przypadku, gdy chcemy coś usunąć z tablicy tablic.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 309 Pomógł: 56 Dołączył: 3.11.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Musiał mu podać na tacy... :/
Po co kursy, skoro tu "jest" helpdesk... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 1.07.2010 Ostrzeżenie: (20%) ![]() ![]() |
albo
i wtedy jest czysto. Przecież te sposoby nie mogą zadziałać. Pisałem, że mam tablicę tablic, np: $tablica= [ (id_produktu=>1, nazwa=>rower, cena=>150), (id_produktu=>5, nazwa=>komputer, cena=>1300), (id_produktu=>12, nazwa=>kask, cena=>90), (id_produktu=>7, nazwa=>laptop, cena=>2700) ] I chcę napisać funkcję, w której usuwana jest dana podtablica po wybranym id_produktu Po za tym zostaje druga część pytania, jak przenieść te wszystkie rekordy do tabeli w MySQL. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Na obecnej strukturze nie pójdzie tak prosto. Musisz polecieć pętlą (foreach) i usunąć (unset) element tablicy, który ma wskazany ID ($element['id_produktu] == $id_do_usuniecia). Mógłbyś ustalić, że kluczem tablicy jest właśnie $id_do_usunięcia i wówczas nie potrzebujesz pętli - robisz sam unset (+ isset() żeby nie waliło ostrzeżeniem). Podczas dodawania elementu do tablicy zamiast:
robisz:
i jesteś w domu. Tyle tylko, że wówczas 1 produkt może wystąpić w tablic 1 raz. Do do drugiego pytania: tak, pętla (foreach) i wpisanie danych do bazy (INSERT). Polecam tzn. multi insert czyli dodawanie kilku rekordów za jednym zamachem:
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 1.07.2010 Ostrzeżenie: (20%) ![]() ![]() |
Na obecnej strukturze nie pójdzie tak prosto. Musisz polecieć pętlą (foreach) i usunąć (unset) element tablicy, który ma wskazany ID ($element['id_produktu] == $id_do_usuniecia). Mógłbyś ustalić, że kluczem tablicy jest właśnie $id_do_usunięcia i wówczas nie potrzebujesz pętli - robisz sam unset (+ isset() żeby nie waliło ostrzeżeniem). Podczas dodawania elementu do tablicy zamiast:
robisz:
i jesteś w domu. Tyle tylko, że wówczas 1 produkt może wystąpić w tablic 1 raz. Do do drugiego pytania: tak, pętla (foreach) i wpisanie danych do bazy (INSERT). Polecam tzn. multi insert czyli dodawanie kilku rekordów za jednym zamachem:
Dzięki. Zastosowałem się do Twoich rad. Skorzystałem z drugiej metody i ustaliłem, że kluczem jest id_produktu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 17:41 |